
    A7i8	                     P    d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	  G d d      Z
y)    )Optional)Sessionselectfunc)ProjectMaster)ProductImagec                       e Zd Zedededefd       Zededefd       Zedede	de
e   fd	       Zeded
e	de	de
e   dedefd       Zedededefd       Zedededdfd       Zy)ProjectRepositorysessionprojectreturnc                 j    | j                  |       | j                          | j                  |       |S Naddcommitrefreshr   r   s     O/var/www/html/story-book/Story-Book-python-api/app/repositories/project_repo.pycreate_projectz ProjectRepository.create_project	   )    G     dbmappingc                 j    | j                  |       | j                          | j                  |       |S r   r   )r   r   s     r   add_project_imagesz$ProjectRepository.add_project_images   s'    
w
		


7r   
project_idc                 .    | j                  t        |      S r   )getr   )r   r   s     r   get_projectzProjectRepository.get_project   s    {{=*55r   pagelimitsearchsort_byorderc                    t        t              j                  t        j                  dk(        }|rd|j	                          d}|j                  t        j                  t        j                        j                  |      t        j                  t        j                        j                  |      z        }t        j                  t        j                  t        j                  t        j                  t        j                  d}|j                  |t        j                        }	|j                  |dk(  r|	j                         n|	j                               }| j!                  |j#                  t        j$                               j                  d             j'                         }
| j!                  |j)                  |dz
  |z        j+                  |            j-                         }||
fS )NF%)idproject_nameclient_name
created_at
updated_atasc   )r   r   where
is_deletedlowerr   r)   liker*   r(   r+   r,   r   order_byr-   descexecwith_only_columnscountoneoffsetr"   all)r   r!   r"   r#   r$   r%   stmtr2   valid_sort_fieldssort_coltotalrowss               r   list_advancedzProjectRepository.list_advanced   sv    m$**=+C+Cu+LMv||~&a(D::

=556;;DA**]667<<TBCD  "")66(44'22'22
 %((-2J2JK}}u~X\\^8==?S T33DJJLAJJ4PQUUW||KKU*+11%8

#% 	 U{r   c                 j    | j                  |       | j                          | j                  |       |S r   r   r   s     r   update_projectz ProjectRepository.update_projectA   r   r   Nc                 T    d|_         | j                  |       | j                          y)NT)r0   r   r   r   s     r   soft_delete_projectz%ProjectRepository.soft_delete_projectH   s#    !Gr   )__name__
__module____qualname__staticmethodr   r   r   r   r   intr   r    strr@   rB   rD    r   r   r
   r
      s    - M   w    6W 6# 6(=:Q 6 6 ### # 	#
 # # #J  - M   W }   r   r
   N)typingr   sqlmodelr   r   r   app.models.project_masterr   app.models.product_imager   r
   rK   r   r   <module>rP      s      * * 3 1F Fr   