
    b6i                     @    d dl mZ d dlmZmZ d dlmZ  G d d      Zy)    )Optional)Sessionselect)Userc                       e Zd ZdZedededee   fd       Z	edede
dee   fd       Zed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)UserRepositoryz.Repository providing CRUD operations for User.sessionemailreturnc                     t        t              j                  t        j                  |k(  t        j                  dk(        }| j                  |      j                         S )NF)r   r   wherer
   
is_deletedexecfirst)r	   r
   stmts      L/var/www/html/story-book/Story-Book-python-api/app/repositories/user_repo.pyget_by_emailzUserRepository.get_by_email   sB    d|!!$**"5t%7OP||D!''))    user_idc                 .    | j                  t        |      S N)getr   )r	   r   s     r   	get_by_idzUserRepository.get_by_id   s    {{4))r   userc                 j    | j                  |       | j                          | j                  |       |S r   addcommitrefreshr	   r   s     r   createzUserRepository.create   )    Dr   c                 j    | j                  |       | j                          | j                  |       |S r   r   r    s     r   updatezUserRepository.update   r"   r   Nc                 T    d|_         | j                  |       | j                          y)NT)r   r   r   r    s     r   soft_delete_userzUserRepository.soft_delete_user   s"    Dr   )__name__
__module____qualname____doc__staticmethodr   strr   r   r   intr   r!   r$   r&    r   r   r   r      s    8*g *c *htn * * *7 *S *Xd^ * *  t     t    '  $  r   r   N)typingr   sqlmodelr   r   app.models.userr   r   r.   r   r   <module>r2      s     $   r   