
    RkhU                        d dl mZmZmZmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZ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 d dlmZ d d	lmZ  e       Zej=                  d
ed       e        edd       eddd       eej>                  dej@                  d       edd       ee      fdede!de"de"de#de	fd       Z$ejK                  d
ed       ee      fdede	fd       Z&ej=                  d ed!       ed"d#$       ee      fd%e"de	fd&       Z'ejQ                  d ed'       ed"d($       ee      fded%e"de	fd)       Z)ejU                  d ed*       ed"d+$       ee      fd%e"de	fd,       Z+y-).    )	APIRouterDependsHTTPExceptionstatus)PathQuery)Session)WorkGroupCreateSchemaWorkGroupFilterSchemaWorkGroupOutputSchemaWorkGroupUpdateSchema)create_work_group_servicedelete_work_group_serviceupdate_work_group_serviceget_all_work_groups_serviceget_work_group_by_id_service)get_db)	constants)get_current_user)ResponseModel zGet all work groups)response_modelsummaryz-created_atzSort by fields, prefix with '-' for descending order. Allowed fields: name, created_at, updated_at., id. Multiple fields can be separated by commas.)defaultdescription   zPage number)r   ger   zItems per page)r   r   ler   TzHWhether to paginate the results. If false, all results will be returned.payloadsort_bypageper_page	paginateddbc           	         K   t        |||| |r|j                  d      ng |       d {   }t        |t        j                  dd      S 7 !w)N,)r$   r!   r"   r   r    r#   TRecord fetched successfullydatastatus_codesuccessmessage)r   splitr   r   HTTP_200_OK)r   r    r!   r"   r#   r$   responses          a/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/web_crawler/routers/work_group.pyget_all_work_groups_listr1      s\     0 0&-c"2 H &&-	 s   (AA"AzCreate a new work groupc                 p   K   t        ||        d {   }t        |t        j                  dd      S 7 !w)NTzRecord created successfullyr(   )r   r   r   HTTP_201_CREATED)r   r$   r)   s      r0   create_work_groupr4   @   s;     
 +2w77D++-	  8   64"6z/{work_group_id}zGet work group by ID.z ID of the work group to retrieve)r   work_group_idc                    K   t        ||        d {   }t        t        j                  |      t        j
                  dd      S 7 4w)NTr'   r(   )r   r   r   model_validater   r.   )r6   r$   
work_groups      r0   get_work_group_by_idr:   M   sG     
 4BFFJ"11*=&&-	  Gs   A	A5A	zUpdate a work group by IDzID of the work group to updatec                 r   K   t        |||        d {   }t        |t        j                  dd      S 7 !w)NTzRecord updated successfullyr(   )r   r   r   r.   )r   r6   r$   r)   s       r0   update_work_groupr<   Z   s>      +2}gFFD&&-	  Gs   75"7zSoft Delete a work group by IDzID of the work group to deletec                 p   K   t        ||        d {   }t        |t        j                  dd      S 7 !w)NTzRecord deleted successfullyr(   )r   r   r   r.   )r6   r$   r)   s      r0   delete_work_groupr>   h   s;     
 +2}==D&&-	  >r5   N),fastapir   r   r   r   fastapi.paramsr   r   sqlalchemy.ormr	   'src.apps.web_crawler.schemas.work_groupr
   r   r   r   (src.apps.web_crawler.services.work_groupr   r   r   r   r   src.core.dependenciesr   	src.utilsr   src.utils.guardr   $src.apps.base.schemas.response_modelr   routergetDEFAULT_PER_PAGEMAX_PER_PAGEstrintboolr1   postr4   r:   putr<   deleter>        r0   <module>rT      s   = = & "   )  , >	 B}6KL%,Y: aA=A**!!$	 ^ &/+$"$$ $ $" #$* 	+$ M$L R7PQ &/
"

 R
 }F\]c/QR&/


 ^
 }Fab c/OP&/" 	 c !-Iijc/OP&/


 k
rS   