
    oj	                        d Z ddlmZ ddlmZ ddlmZmZ  G d de      Z G d de      Z	 G d	 d
e      Z
 G d de      Zy)u1   Şekli eksiklik tarayıcısının veri modelleri.    )annotations)StrEnum)	BaseModelFieldc                      e Zd ZdZdZdZdZy)Jurisdictionu   Desteklenen patent ofisleri.

    Her ofisin şekli inceleme kuralları farklıdır:
    - TR: TürkPatent — 6769 sayılı SMK ve Başvuru Kılavuzu
    - EP: Avrupa Patent Ofisi — Rule 49 EPC
    - US: USPTO — 37 CFR 1.52 / 1.72 / 1.75
    TREPUSN)__name__
__module____qualname____doc__r	   r
   r        ./tmp/py-stage/app/services/formality/models.pyr   r   
   s     
B	B	Br   r   c                      e Zd ZdZdZdZdZy)Severityu  Bulgunun ciddiyeti.

    - ERROR:   Kurum başvuruyu reddeder / şekli eksiklik bildirir. Mutlaka
               düzeltilmeli.
    - WARNING: Reddi kesin değil ama itiraz/eksiklik yazısı riski yüksek.
    - INFO:    İyileştirme önerisi; başvuruyu engellemez.
    errorwarninginfoN)r   r   r   r   ERRORWARNINGINFOr   r   r   r   r      s     EGDr   r   c                      e Zd ZU dZ edd      Zded<   ded<    edd	      Zded
<    edd      Zded<    edd      Z	ded<    edd      Z
ded<    edd      Zded<    edd      Zded<   y)Findingu    Tek bir şekli eksiklik bulgusu..u-   Kural kimliği, örn. 'claims.no_subheadings')descriptionstrrule_idr   severityu<   İlgili başvuru unsuru: tarifname | istemler | ozet | genelsectionu   Kısa Türkçe başlıktitleu   Sorunun açıklamasıdetail u0   Vekile düzeltme önerisi (uygulanabilir, somut)defaultr   
suggestionu.   Sorunlu metin parçası (varsa), bağlam içinexcerptu+   Dayanak: kanun/yönetmelik/kılavuz maddesilegal_basisN)r   r   r   r   r   r   __annotations__r!   r"   r#   r'   r(   r)   r   r   r   r   r   &   s    **YZGSZWGS  s(ABE3B)@AFCA RJ   PGS   MK r   r   c                  ~    e Zd ZU dZ ee      Zded<   dZded<   dZ	ded<   dZ
ded	<    ed
d      Zded<   ddZy)FormalityReportu8   Bir başvuru için tüm bulguların toplandığı rapor.)default_factoryzlist[Finding]findingsr   interror_countwarning_count
info_countFuA   Yabancı terim LLM kontrolü çalıştırıldı mı (API key vs.)r%   boolchecked_termsc                    t        d | j                  D              | _        t        d | j                  D              | _        t        d | j                  D              | _        y)u>   error/warning/info sayaçlarını findings'e göre günceller.c              3  \   K   | ]$  }|j                   t        j                  k(  s!d  & yw   N)r    r   r   .0fs     r   	<genexpr>z*FormalityReport.recount.<locals>.<genexpr>I   s     XQ1::;WqX   ",,c              3  \   K   | ]$  }|j                   t        j                  k(  s!d  & ywr7   )r    r   r   r9   s     r   r<   z*FormalityReport.recount.<locals>.<genexpr>J   s&      !


h6F6F(FA!
r=   c              3  \   K   | ]$  }|j                   t        j                  k(  s!d  & ywr7   )r    r   r   r9   s     r   r<   z*FormalityReport.recount.<locals>.<genexpr>M   s     VA!**:UaVr=   N)sumr.   r0   r1   r2   )selfs    r   recountzFormalityReport.recountG   sO    X$--XX  !
}}!
 
 VVVr   N)returnNone)r   r   r   r   r   listr.   r*   r0   r1   r2   r4   rB   r   r   r   r,   r,   ;   sO    B#D9Hm9KM3JWM4 
Wr   r,   N)r   
__future__r   enumr   pydanticr   r   r   r   r   r,   r   r   r   <module>rI      sC    7 "  %7 w i *Wi Wr   