
    Eohs	                         d dl m Z  d dlmZmZ d dlmZ d dlmZ d dlmZ d dlm	Z	  G d de      Z
 G d	 d
e      Z G d de      Z G d de	      Z G d de	      Zy)    )datetime)	BaseModelField)Form)Optional)r   )
BaseSchemac                       e Zd ZU dZ edd      Zeed<    edd      Zeed<    edd      Z	eed	<    ed
d      Z
ed
z  ed<    edd      Zeed<   y
)FileBaseSchemazP
    Base schema for File.
    Shared fields used by create/update schemas.
    .zholiday_photo.jpgexampleoriginal_namezphoto_2025_01.jpgnamez uploads/images/photo_2025_01.jpgpathNz
image/jpegmime   created_by_id)__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   r   int     U/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/files/schemas/file.pyr
   r
      se    
 s,?@M3@c#67D#7c#EFD#FT<8D#*8sA.M3.r   r
   c                       e Zd ZU eed<   eed<   eed<   edz  ed<   eed<   e edd	       edd
	       edd	       edd	       edd	      fdededededz  def
d       Zy)FileCreateSchemar   r   r   Nr   r   .zOriginal file namedescriptionzStored file namezStorage pathz	MIME typezUploader IDc                      | |||||      S )N)r   r   r   r   r   r   )clsr   r   r   r   r   s         r   as_formzFileCreateSchema.as_form   s      ''
 	
r   )	r   r   r   r   r   r   classmethodr   r#   r   r   r   r   r      s    
I
I
* "#3GH*<=.9+>!#=A

 
 	

 Dj
 
 
r   r   c                       e Zd ZU dZ edd      Zedz  ed<    edd      Zedz  ed<    edd      Z	edz  ed	<    edd
      Z
edz  ed<   y)FileUpdateSchemazJ
    Schema for updating a File.
    Only allow updating some fields.
    Nzupdated_photo.jpgr   r   zphoto_final_2025.jpgr   z#uploads/images/photo_final_2025.jpgr   z	image/pngr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r&   2   s`    
 !&d4G HM3:HT+ABD#*BT+PQD#*QT;7D#*7r   r&   c                   "    e Zd ZU eed<   eed<   y)FileMinimalSchemaidr   N)r   r   r   r   r   r   r   r   r   r(   r(   >   s    G
Ir   r(   c                   (   e Zd ZU  edd      Zeed<    edd      Zee	   ed<    edd      Z
ee	   ed	<    edd
      Zee	   ed<    edd      Zee	   ed<    edd      Zee	   ed<    edd      Zee   ed<    edd      Zee   ed<   y)FileResponseSchema.zFile idr   r)   NzOriginal name of the filer   zPath to the filer   zName of the filer   zMIME type of the filer   zFull URL to access the filefull_urlzFile created at
created_atzfile created byr   )r   r   r   r   r)   r   r   r   r   r   r   r   r   r,   r-   r   r   r   r   r   r+   r+   B   s    CY/B/#(;V#WM8C=W2DED(3-E2DED(3-E2IJD(3-J#D6STHhsmT%*4=N%OJ"O#(;L#MM8C=Mr   r+   N)r   pydanticr   r   fastapir   typingr   src.apps.base.schemas.commonr   r
   r   r&   r(   r+   r   r   r   <module>r2      sU     %    3
/Y 
/
y 
4	8y 	8
 N Nr   