
    j{                        d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZmZmZ  edd	g
      Z G d de	      Zej)                  d      dd       Zy)u  İtiraz / şekli inceleme yazısı ayıklama endpoint'i.

Hedef patent ofisinin (TR | EP | US) gönderdiği şekli inceleme/itiraz
yazısı veya formal Office Action PDF'ini alıp, tespit edilen eksiklik
maddelerini yapılandırılmış biçimde döner. "İtiraz → düzeltme → değişiklik
evrakı" döngüsünün ilk halkasıdır: ayıklanan maddeler doğrudan değişiklik
evrakı formuna ön-doldurulabilir.
    )annotationsN)	APIRouterHTTPException)	BaseModelField)Jurisdiction)ObjectionExtractionErrorObjectionReportextract_objection_textparse_objectionz
/objection	objection)prefixtagsc                  d    e Zd ZU dZ eddd      Zded<    eej                  d	      Z	d
ed<   y)ObjectionParseRequestu   Frontend → backend isteği..   u8   Base64 kodlanmış şekli inceleme/itiraz yazısı PDF'i)
min_lengthdescriptionstr
pdf_base64ul   Yazının ait olduğu patent ofisi (TR | EP | US). Prompt ve kural eşleştirme tablosu buna göre seçilir.)defaultr   r   jurisdictionN)
__name__
__module____qualname____doc__r   r   __annotations__r   TRr        "/tmp/py-stage/app/api/objection.pyr   r      s>    'NJ 
 "'>"L, r    r   z/parsec                  K   	 t        j                  | j                  d      }|j                  d      st        dd      	 t        |      }t        || j                  
       d{   S # t        j                  t
        f$ r}t        dd|       |d}~ww xY w# t        $ r}t        d	t        |            |d}~ww xY w7 ^w)uJ   Şekli inceleme/itiraz yazısı PDF'inden eksiklik maddelerini çıkarır.T)validatei  zPDF base64 decode edilemedi: )status_codedetailNs   %PDF-u(   Yüklenen dosya geçerli bir PDF değil.i  )r   )base64	b64decoder   binasciiError
ValueErrorr   
startswithr   r	   r   r   r   )req	pdf_bytesexctexts       r!   parse_objection_letterr0   .   s     $$S^^dC	 )=
 	

G%i0 !C4D4DEEE! NNJ' &CC5$I
	 $ GCH=3FG FsW   C
!A. C
B  C
)C*C
.BBBC
 	C)C  CC
)r,   r   returnr
   )r   
__future__r   r&   r(   fastapir   r   pydanticr   r   app.services.formality.modelsr   app.services.objectionr	   r
   r   r   routerr   postr0   r   r    r!   <module>r9      sc    #   , % 6  
,k]	;I " XF Fr    