
    /i
                     v    d dl Z d dlmZ d dlmZmZmZmZmZ d dlm	Z	 d dl
mZmZmZ d dlmZ  G d de      Zy)	    N)datetime)DateTimeStringNumeric
ForeignKeyfunc)UUID)Mappedmapped_columnrelationship)Basec                      e Zd ZU dZdZ e ed      dej                        Z	e
ej                     ed<    e ed      dd	      Ze
e   ed
<    e ed       ed      dd	      Ze
ej                  dz     ed<    e ed      d      Ze
e   ed<    e ed      d      Ze
e   ed<    e ed      d      Ze
e   ed<    e ed      d      Ze
e   ed<    e ed      d      Ze
e   ed<    e ed      d      Ze
edz     ed<    e edd      d      Ze
e   ed<    e edd      d      Ze
e   ed<    e edd      d      Ze
e   ed<    e edd      d      Ze
e   ed<    e ed      dd       Ze
e   ed!<    e ed      d      Ze
e   ed"<    e e d#      d e!jD                         $      Z#e
e$   ed%<    e e d#      d e!jD                         $      Z%e
e$   ed&<    e e d#      d e!jD                          e!jD                         '      Z&e
e$   ed(<    e'd)      Z( e'd*      Z)y)+ScrapingResultz
    Stores comprehensive scraping results for all products and vendors.
    Includes compliant, complaining (above MSP), and violation (below MSP) records.
    scraping_resultsT)as_uuid)primary_keydefaultidzproducts.idF)nullableindex
product_idz
vendors.idN	vendor_idi   )r   product_name   barcodereference_idvendor_namei   
vendor_urldomain_name
      mspscraped_priceprice_differencepercentage_difference2   unknown)r   r   compliance_statussource_type)timezone)r   server_default
scraped_at
created_at)r   r+   onupdate
updated_atVendorProduct)*__name__
__module____qualname____doc____tablename__r   r	   uuiduuid4r   r
   __annotations__r   r   intr   r   r   strr   r   r   r   r   r   r"   floatr#   r$   r%   r(   r)   r   r   nowr,   r   r-   r/   r   vendorproduct     @/var/www/html/marco-python-backend/app/models/scraping_result.pyr   r      sy    'M)$t*<$X\XbXbcBtyyc+J},EPU]abJsb*7T8JJWcLdos{  +AIvdii$&'  A !.fTlU KL&+K(tDGVC[D -fSkD IL&+I  -VC[5IKI+F4L5IJsI&3F3K$&OKd
#O 'wr1~FCF#0Q$#OM6%=O&3GBNT&RfUmR+8QRV+W6%=W &36":W`%avc{a  -VBZ%HKH $141HSXiqimiqiqis#tJx t#041HSXiqimiqiqis#tJx t#0$txxz	$Jx   (#F9%GrA   r   )r7   r   
sqlalchemyr   r   r   r   r   sqlalchemy.dialects.postgresqlr	   sqlalchemy.ormr
   r   r   app.db.baser   r   r@   rA   rB   <module>rG      s)      B B / > > -&T -&rA   