§
    M¶jM  ã                   ó(  — d dl mZmZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZmZ  edd	g¬
¦  «        Zde
fd„Z G d„ de¦  «        Ze                     ddd¬¦  «         ee¦  «        fdede
fd„¦   «         Ze                     d¦  «        d„ ¦   «         Ze                     d¦  «        d"defd„¦   «         Ze                     d¦  «        d„ ¦   «         Ze                     d¦  «         ee¦  «        fdede
fd „¦   «         Zd!S )#é    )Ú	APIRouterÚDependsÚHTTPException)ÚUUID)Ú	BaseModel)Údatetime©ÚBasePostgresClient)ÚCreateProjectCommandÚCreateProjectCommandHandler)ÚGetProjectDetailsQueryÚGetProjectDetailsQueryHandlerz/v1/erp/projectsÚProjects)ÚprefixÚtagsÚreturnc                  ó   — t          ¦   «         S )Nr	   © ó    úDC:\Projects\DSCons\app\modules\projects\presentation\projects_api.pyÚget_db_clientr      s   € ÝÑÔÐr   c                   óB   — e Zd ZU eed<   eed<   eed<   dZedz  ed<   dS )ÚCreateProjectRequestÚnameÚproject_codeÚ
start_dateNÚdescription)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   r   r   r   r   r      sG   € € € € € € Ø
€I€I�IØÐÐÑØÐÐÑØ"€K��t‘Ð"Ð"Ñ"Ð"Ð"r   r   Ú éÉ   Úcreate_project_cqrs)Ústatus_codeÚoperation_idÚrequestÚ	db_clientc                 óZ  — t          | j        | j        | j        | j        ¬¦  «        }t          |¦  «        }	 |                     |¦  «        }|ddœS # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d}~wt          $ r#}t          dt          |¦  «        ¬¦  «        ‚d}~ww xY w)u   Táº¡o má»›i má»™t dá»± Ã¡n ERP.)r   r   r   r   Úsuccess)Ú
project_idÚstatusi�  ©r&   ÚdetailNiô  )r   r   r   r   r   r   ÚhandleÚ
ValueErrorr   r!   Ú	Exception)r(   r)   ÚcommandÚhandlerr,   Úes         r   Úcreate_projectr6      sÉ   € õ #ØŒ\ØÔ)ØÔ%ØÔ'ð	ñ ô €Gõ *¨)Ñ4Ô4€Gð	<à—^’^ GÑ,Ô,ˆ
Ø(°IÐ>Ð>Ð>øÝð <ð <ð <å¨µC¸±F´FÐ;Ñ;Ô;Ð;øøøøÝð <ð <ð <å¨µC¸±F´FÐ;Ñ;Ô;Ð;øøøøð<øøøs#   ¸A Á
B*ÁA:Á:B*ÂB%Â%B*z/audit/integrityc                  óJ   — ddl m}   | ¦   «         }|                     ¦   «         S )ua   Kiá»ƒm toÃ¡n tá»± Ä‘á»™ng tÃ­nh toÃ n váº¹n vÃ  phÃ¡t hiá»‡n sai lá»‡ch sá»‘ liá»‡u/lá»‡ch dÃ²ng.r   )ÚDataIntegrityService)Ú7app.modules.projects.application.data_integrity_servicer8   Úaudit_all_projects_integrity)r8   Úservices     r   Úaudit_data_integrityr<   +   s7   € ð ]Ð\Ð\Ð\Ð\Ð\Ø"Ð"Ñ$Ô$€GØ×/Ò/Ñ1Ô1Ð1r   z/sync/excel-to-dbTÚdry_runc                 óN   — ddl m}  |¦   «         }|                     | ¬¦  «        S )u^   Ä�á»‘i soÃ¡t vÃ  Ä‘á»“ng bá»™ an toÃ n tá»« file Báº£ng theo dÃµi cÃ´ng trÃ¬nh.xlsx vÃ o CSDL.r   ©ÚExcelSyncService)r=   )Ú3app.modules.projects.application.excel_sync_servicer@   Úsync_excel_to_db)r=   r@   r;   s      r   rB   rB   3   s<   € ð UÐTÐTÐTÐTÐTØÐÑ Ô €GØ×#Ò#¨GÐ#Ñ4Ô4Ð4r   z/sync/db-to-excelc                  óJ   — ddl m}   | ¦   «         }|                     ¦   «         S )uZ   Ä�á»“ng bá»™ tá»« CSDL sang file Excel báº£o toÃ n Ä‘á»‹nh dáº¡ng vÃ  tá»± Ä‘á»™ng backup.r   r?   )rA   r@   Úsync_db_to_excel)r@   r;   s     r   rD   rD   ;   s7   € ð UÐTÐTÐTÐTÐTØÐÑ Ô €GØ×#Ò#Ñ%Ô%Ð%r   z/{project_id}r,   c                 ó”   — t          | ¬¦  «        }t          |¦  «        }|                     |¦  «        }|st          dd¬¦  «        ‚|S )uF   Láº¥y thÃ´ng tin chi tiáº¿t dá»± Ã¡n (Luá»“ng Ä�á»�c tá»‘c Ä‘á»™ cao).)r,   i”  u   Dá»± Ã¡n khÃ´ng tá»“n táº¡i.r.   )r   r   r0   r   )r,   r)   Úqueryr4   Úresults        r   Úget_projectrH   C   sT   € õ #¨jÐ9Ñ9Ô9€EÝ+¨IÑ6Ô6€Gà�^Š^˜EÑ"Ô"€FØð TÝ¨Ð4RÐSÑSÔSÐSà€Mr   N)T)Úfastapir   r   r   Úuuidr   Úpydanticr   r   Ú&app.core.postgres.base_pkg.base_clientr
   Ú)app.modules.projects.application.commandsr   r   Ú(app.modules.projects.application.queriesr   r   Úrouterr   r   Úpostr6   Úgetr<   ÚboolrB   rD   rH   r   r   r   ú<module>rS      s5  ðØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à EÐ EÐ EÐ EÐ EÐ EØ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gØ jÐ jÐ jÐ jÐ jÐ jÐ jÐ jà	ˆÐ,°J°<Ð	@Ñ	@Ô	@€ð Ð)ð  ð  ð  ð  ð#ð #ð #ð #ð #˜9ñ #ô #ð #ð ‡‚ˆR˜SÐ/D€ÑEÔEØRYÐRYÐZgÑRhÔRhð <ð <Ð0ð <Ð=Oð <ð <ð <ñ FÔEð<ð* ‡‚ÐÑÔð2ð 2ñ  Ôð2ð ‡‚Ð Ñ!Ô!ð5ð 5˜dð 5ð 5ð 5ñ "Ô!ð5ð ‡‚Ð Ñ!Ô!ð&ð &ñ "Ô!ð&ð ‡‚ˆOÑÔØBIÀ'È-ÑBXÔBXð 	ð 	˜Dð 	Ð-?ð 	ð 	ð 	ñ Ôð	ð 	ð 	r   