
    0i                        d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZmZ  eddg	      Z G d
 de	      Zej#                  d      dd       Zy)u   Mermaid diagram rendering endpoint.

POST /api/v1/diagrams/render — Mermaid kaynağı → TürkPatent-uyumlu PNG.
Laravel tarafı proxy yapar, PNG'yi disk'e kaydeder, path'i diagrams tablosuna yazar.
    )annotations)	APIRouterHTTPException)Response)	BaseModelField)MermaidNotInstalledErrorMermaidRenderErrorrender_mermaid_to_pngz	/diagramsdiagrams)prefixtagsc                  n    e Zd ZU  eddd      Zded<    eddd	
      Zded<    eddd
      Zded<   y)RenderRequest.   i N  )
min_length
max_lengthstrsource         )defaultgeleintscalei     i  widthN)__name__
__module____qualname__r   r   __annotations__r   r        //var/www/ai.patentyazar.com/app/api/diagrams.pyr   r      s;    e<FC<qQ1-E3-t5E35r%   r   z/renderc                .  K   	 t        | j                  | j                  | j                         d{   }t        |dddi	      S 7 # t        $ r}t        dt        |            |d}~wt        $ r}t        dt        |            |d}~ww xY ww)
uE   Mermaid kaynağını PNG olarak döndürür (application/png binary).)r   r   Ni  )status_codedetaili  z	image/pngzCache-Controlzno-cache)content
media_typeheaders)	r   r   r   r   r	   r   r   r
   r   )request	png_bytesexcs      r&   render_diagramr0      s     	G/NN----
 
	  *- 

 $ GCH=3F GCH=3FGsC   B/A
 AA
 BA
 
	BA**B6BBBN)r-   r   returnr   )__doc__
__future__r   fastapir   r   fastapi.responsesr   pydanticr   r   app.services.mermaidr	   r
   r   routerr   postr0   r$   r%   r&   <module>r:      s[    # , & %  
+ZL	96I 6 Y r%   