
    6j'                     t   d dl Z d dlZd dlZd dlmZ  ed            e j        dd           e j        dd           e j        d	d
           e j        dd           e j        dd          dZd Zddede	de
fdZde	defdZde	defdZde	defdZde	defdZde	defdZde	defdZde	defdZdS )    N)load_dotenvT)overrideDB_HOST	localhostDB_PORT5432DB_NAMEfyndoDB_USERpostgresDB_PASSWORD )hostportdatabaseuserpasswordc                  .    t          j        di t          S )N )psycopg2connect	DB_CONFIGr       EC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\database.pyget_connectionr      s    ((i(((r   uploaded_fileschat_idreturnc           
         t                      }|                                }d | D             }|                    d|t          j        |          t          |           t          j        d| i          f           |                                d         }|                                 |                                 |                                 t          d|            |S )Nc                 8    g | ]}|                     d           S )filenameget).0fs     r   
<listcomp>zsave_upload.<locals>.<listcomp>   s$    ;;;qz"";;;r   z
        INSERT INTO uploads (chat_id, filenames, total_files, response)
        VALUES (%s, %s, %s, %s)
        RETURNING id
    r   r   u   [DB] uploads saved — chat_id=)
r   cursorexecutejsondumpslenfetchonecommitcloseprint)r   r   conncur	filenamesrow_ids         r   save_uploadr4      s    D
++--C;;N;;;IKK 
 	
9N
$n566	
		 	 	 \\^^AFKKMMMIIKKKJJLLL	
5G
5
5666Mr   resultc                 :   t                      }|                                }|                    dg           }t          d |D             i           }|                    d          }|                    d| ||                    d          |                    d          t          j        |          t          j        |                    di                     t          j        |                    di                     t          j        |                    d	i                     f           |r|                    d
|| f           |                                 |                                 |                                 t          d|  d|            d S )Nclassificationsc              3   D   K   | ]}|                     d           |V  dS )batch_idNr"   )r$   cs     r   	<genexpr>z"save_three_boom.<locals>.<genexpr>7   s3      BBj0A0AB!BBBBBBr   r9   aW  
        INSERT INTO three_boom
        (chat_id, batch_id, product_name, plant,
         classifications, readiness_summary, extraction_summary, validate)
        VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
        ON CONFLICT (chat_id) DO UPDATE SET
            batch_id = EXCLUDED.batch_id,
            product_name = EXCLUDED.product_name,
            plant = EXCLUDED.plant,
            classifications = EXCLUDED.classifications,
            readiness_summary = EXCLUDED.readiness_summary,
            extraction_summary = EXCLUDED.extraction_summary,
            validate = EXCLUDED.validate
    product_nameplantreadiness_summaryextraction_summaryvalidatez3UPDATE uploads SET batch_id = %s WHERE chat_id = %su"   [DB] three_boom saved — chat_id=z batch=)
r   r'   r#   nextr(   r)   r*   r-   r.   r/   )r   r5   r0   r1   r7   firstr9   s          r   save_three_boomrC   3   s|   D
++--Cjj!2B77OBB_BBBBGGEyy$$HKK  			.!!		'
?##
6::126677
6::2B7788
6::j"--..	
  2  
Aw	
 	
 	

 	KKMMMIIKKKJJLLL	
Iw
I
Ix
I
IJJJJJr   c                    t                      }|                                }|                    di           }|                    d| |                    d          |                    dd          |                    dd          |                    dd          |                    dd          |                    d	          t	          j        |          f           |                                 |                                 |                                 t          d
|  d|                    dd                      d S )Nsummarya  
        INSERT INTO exceptions
        (chat_id, batch_id, total_exceptions, critical,
         major, minor, risk_level, response)
        VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
        ON CONFLICT (chat_id) DO UPDATE SET
            batch_id = EXCLUDED.batch_id,
            total_exceptions = EXCLUDED.total_exceptions,
            critical = EXCLUDED.critical,
            major = EXCLUDED.major,
            minor = EXCLUDED.minor,
            risk_level = EXCLUDED.risk_level,
            response = EXCLUDED.response
    r9   total_exceptionsr   criticalmajorminor
risk_levelu"   [DB] exceptions saved — chat_id=z total=	r   r'   r#   r(   r)   r*   r-   r.   r/   )r   r5   r0   r1   rE   s        r   save_exceptionsrL   c   s    D
++--CjjB''GKK  	

:&**J""GQGQL!!
6	
  . 	KKMMMIIKKKJJLLL	
cw
c
cw{{K]_`?a?a
c
cdddddr   c                 `   t                      }|                                }|                    di           }|                    di           }|                    d| |                    d          |                    d          |                    d          |                    d          dt	          j        |          f           |                                 |                                 |                                 t          d	|  d
|                    d                      d S )Ninvestigation_summary
trip_scorez
        INSERT INTO rca
        (chat_id, batch_id, risk_level, trip_score,
         approval_status, confirmed, response)
        VALUES (%s, %s, %s, %s, %s, %s, %s)
    r9   rJ   scoreapproval_statusFu   [DB] rca saved — chat_id=z risk=rK   )r   r5   r0   r1   rE   trips         r   save_rcarS      s   D
++--Cjj0"55G::lB''DKK  	

:L!!

$%%
6
   	KKMMMIIKKKJJLLL	
R
R
Rw{{<7P7P
R
RSSSSSr   payloadc           
         t                      }|                                }|                    dd|                    d          |                    d          |                    d          |                    d          | f           |                                 |                                 |                                 t          d|  d|                    d                      d S )	Nz
        UPDATE rca SET
            confirmed    = %s,
            confirmed_by = %s,
            confirmed_at = %s,
            cause_id     = %s,
            role         = %s
        WHERE chat_id = %s
    Tconfirmed_byconfirmed_atcause_idroleu   [DB] rca confirmed — chat_id= by=r   r'   r(   r#   r-   r.   r/   r   rT   r0   r1   s       r   update_rca_confirmationr]      s    D
++--CKK  	N##N##JF
    	KKMMMIIKKKJJLLL	
VG
V
V^9T9T
V
VWWWWWr   c                    t                      }|                                }|                    dg           }|                    d| |                    d          |                    d          |                    d          t	          |          dt          j        |          f           |                                 |                                 |                                 t          d|  dt	          |                      d S )	Ncapa_actionsz
        INSERT INTO capa
        (chat_id, batch_id, deviation_id, severity,
         total_actions, plan_status, response)
        VALUES (%s, %s, %s, %s, %s, %s, %s)
    r9   deviation_idseverityPendingu   [DB] capa saved — chat_id=z	 actions=)
r   r'   r#   r(   r+   r)   r*   r-   r.   r/   )r   r5   r0   r1   actionss        r   	save_capard      s    D
++--Cjj,,GKK  	

:

>""

:G
6
   	KKMMMIIKKKJJLLL	
I
I
I3w<<
I
IJJJJJr   c           
         t                      }|                                }|                    dd|                    d          |                    d          |                    dd          | f           |                                 |                                 |                                 t          d|  d|                    d                      d S )	Nz
        UPDATE capa SET
            plan_status        = %s,
            approved_by        = %s,
            approved_at        = %s,
            send_for_execution = %s
        WHERE chat_id = %s
    Approvedapproved_byapproved_atsend_for_executionFu   [DB] capa approved — chat_id=rZ   r[   r\   s       r   update_capa_approvalrj      s    D
++--CKK  	M""M""(%00
   	KKMMMIIKKKJJLLL	
UG
U
U]9S9S
U
UVVVVVr   c                    t                      }|                                }|                    di           }|                    d| |                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d	          t	          j        |          f	           |                                 |                                 |                                 t          d
|  d|                    d                      d S )Nreport_metadataaz  
        INSERT INTO reports
        (chat_id, batch_id, ref_id, severity,
         generated_date, pdf_filename, download_url,
         evidence_score, response)
        VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
        ON CONFLICT (chat_id) DO UPDATE SET
            batch_id = EXCLUDED.batch_id,
            ref_id = EXCLUDED.ref_id,
            severity = EXCLUDED.severity,
            generated_date = EXCLUDED.generated_date,
            pdf_filename = EXCLUDED.pdf_filename,
            download_url = EXCLUDED.download_url,
            evidence_score = EXCLUDED.evidence_score,
            response = EXCLUDED.response
    r9   ref_idra   generated_datepdf_filenamedownload_urlevidence_coverage_scoreu   [DB] report saved — chat_id=z ref=rK   )r   r5   r0   r1   metas        r   save_reportrs      s%   D
++--C::',,DKK   	!""

>""

>""

,--
6

  4 	KKMMMIIKKKJJLLL	
M7
M
M(9K9K
M
MNNNNNr   )N)osr)   r   dotenvr   getenvr   r   liststrintr4   dictrC   rL   rS   r]   rd   rj   rs   r   r   r   <module>r{      s   				         T     BIi--BIi((	)W--BIi,,	-,, 	) ) )  s c    4)KS )K$ )K )K )K )K`eS e$ e e e eJTc T4 T T T T:XS X4 X X X X:Ks KD K K K K8W# W W W W W6!O !Od !O !O !O !O !O !Or   