
    _h                     h   d dl mZ d dlmZmZmZ d dlmZ d dlmZm	Z	m
Z
mZ  G d de      Z G d de      Z G d	 d
ee      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 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)     )Enum)ListOptionalAny)datetime)	BaseModelHttpUrlFieldfield_validatorc                   2    e Zd ZU ee   ed<   dddddgiiiZy)UrlListurlsjson_schema_extraexamplehttps://example.com/page1zhttps://example.com/page2N)__name__
__module____qualname__r   r	   __annotations__model_config     /var/www/html/schemas.pyr   r      s3    
w- 	//
	Lr   r   c                   4    e Zd ZU eed<   eed<   dddddiiZy)	AddLinksResponseaddedstatusr   r      success)r   r   N)r   r   r   intr   strr   r   r   r   r   r      s+    JK 	#
Lr   r   c                       e Zd ZdZdZdZy)ParserStatusEnumidleworkingunavailableN)r   r   r   r$   r%   r&   r   r   r   r#   r#   $   s    DGKr   r#   c                   L    e Zd ZU eed<   eed<   eed<   eed<   ddddd	d
diiZy)StatusResponseprocessed_since_last	new_linksin_queueparser_statusr   r      
      r%   )r)   r*   r+   r,   N)r   r   r   r    r   r#   r   r   r   r   r(   r(   *   s=    NM## 	()!*	
	Lr   r(   c                       e Zd ZU eed<   eed<   eed<   eed<   ee   ed<   eed<   ee   ed<   dd	d
dddddddddidZ	y)UrlQueueItemurl_idurl
date_addedr   date_modifyreciveddataTr      r   2024-07-07T12:00:00Zr   2024-07-07T14:00:00Zr   zExample TitlezParsed content here)titlecontentr2   r3   r4   r   r5   r6   r7   )from_attributesr   N)
r   r   r   r    r   r	   r   r   r   r   r   r   r   r1   r1   <   sg    K	LK(##L
3-  245,4
Lr   r1   c                   T    e Zd ZU ee   ed<   ee   ed<   ddddddd	d
dddidgiiiZy)ParsedResultsResponseparsederrorr   r   resultsr8   r   r9   r   r:   r   r;   Exampler=   N)r   r   r   r   r1   r   r   r   r   r   r@   r@   X   sX     	"#:&<"#'=#$!() 4

Lr   r@   c                   2    e Zd ZU eed<   ee   ed<   eed<   y)Characteristicgroupfilter_namevalueN)r   r   r   r!   r   r   r   r   r   rF   rF   o   s    J#Jr   rF   c                   r    e Zd ZU eed<   eed<   ee   ed<   ee   ed<   ee   ed<   ee   ed<   ee   ed<   y)	CookienamerI   domainpathsecurehttpOnlyexpiryN)r   r   r   r!   r   r   boolr    r   r   r   rK   rK   u   s>    
IJSM
3-TNtnSMr   rK   c                   x    e Zd ZU eed<   dZedz  ed<   ee   ed<   ee   ed<   ee	   ed<    e
d      d        Zy)ParsedProductSchema	full_nameN
short_nameproduct_descriptionimagescharacteristicsc                 t    |rt        |j                               dk  rt        d      |j                         S )Nr   z'full_name must be at least 2 characters)lenstrip
ValueError)clsvs     r   check_full_namez#ParsedProductSchema.check_full_name   s.    C	NQ&FGGwwyr   )r   r   r   r!   r   rV   r   r   r	   rF   r   r`   r   r   r   rT   rT      sK    N!Jd
!!#&M.))[! "r   rT   c                   6    e Zd ZU eed<   eed<   dZee   ed<   y)FilterGroupidrL   r   
sort_orderN)r   r   r   r    r   r!   rd   r   r   r   r   rb   rb      s    G
I !J!r   rb   c                   ,    e Zd ZU eed<   eed<   eed<   y)Filterrc   rL   group_idN)r   r   r   r    r   r!   r   r   r   rf   rf      s    G
IMr   rf   c                   "    e Zd ZU eed<   eed<   y)ProductFilter
product_id	filter_idN)r   r   r   r    r   r   r   r   ri   ri      s    ONr   ri   c                   R    e Zd ZU eed<   eed<   ee   ed<   ee   ed<   ee	   ed<   y)FilterPayloadCategory_nameCategory_idFilterGroupsFiltersProductsN)
r   r   r   r!   r   r    r   rb   rf   ri   r   r   r   rm   rm      s.    {##&\=!!r   rm   N)enumr   typingr   r   r   r   pydanticr   r	   r
   r   r   r   r!   r#   r(   r1   r@   rF   rK   rT   rb   rf   ri   rm   r   r   r   <module>rv      s     & &  ? ?i y  sD  Y $9 8I .Y Y ) ") "
Y 
I "I "r   