Dedulikacja webhooków, naprawa order_number i indeksy bazy danych

Filip Borkowski, Backend/Frontend/Fullstack Engineer

Co zostało naprawione

Dedulikacja webhooków Resend

Resend może dostarczyć ten sam webhook dwukrotnie (retry po timeout). Wcześniej powodowało to zapisanie duplikatów załączników w Storage i bazie danych — np. zlecenie 12602734 miało 8 plików zamiast 4.

Teraz webhook sprawdza email_id w tabeli inbound_emails przed przetworzeniem. Jeśli email był już obsłużony, zwraca skipped: duplicate_email_id bez żadnych zapisów.

Naprawa order_number dla oryginalnych PDF po splicie

Przy emailach wielozleceniowych z jednym załącznikiem PDF (np. BOOKING NOTE.9333662...pdf) kod wykonuje split PDF na osobne pliki dla każdego numeru zlecenia. Oryginalny plik był zapisywany bez order_number = null.

Teraz po splicie oryginalny plik otrzymuje order_number wyekstrahowany z jego nazwy pliku (regex \d{7,8}).

Migracja bazy danych

  • Dodano kolumnę profiles.full_name TEXT (eliminuje ~35 błędów w logach)
  • 5 indeksów wydajnościowych:
    • idx_inbound_emails_order_id
    • idx_inbound_emails_from_email
    • idx_inbound_emails_created_at
    • idx_inbound_email_attachments_order_number
    • idx_inbound_email_attachments_ct_created

Aktualizacja timestamp email_received_at

Przy zduplikowanych zleceniach webhook aktualizuje email_received_at do czasu nowego emaila — PDF generowany z zamówienia pokazuje teraz poprawną godzinę ostatniego otrzymanego emaila.

Więcej artykułów

Naprawa OCR cron, dropdown statusu, animacje tabeli zleceń

Naprawa crona OCR, dropdown statusu z ustawieniami, logika Przetwarzanie AI → in Planing, animacje pulsacji wierszy i wykrzykniki brakujących danych.

Czytaj więcej

Akordeonowy widok korespondencji email i poprawki WorkDesk

Nowy wątkowy widok emaili z animowanymi akordeonami, podgląd treści wiadomości, poprawki WorkDesk i Biblioteki danych.

Czytaj więcej