
    =hm                     `    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	  G d deeef         Z
y)	    )Session)Company)CompanySchema)BaseRepository)Optionalc                   p     e Zd Zdef fdZdedee   fdZdedefdZ	dedefd	Z
d
edee   fdZ xZS )CompanyRepositorydbc                 .    t         |   |t               y N)super__init__r   )selfr
   	__class__s     M/var/www/html/phonemate/phone_mate_backend/repositories/company_repository.pyr   zCompanyRepository.__init__   s    W%    db_modelreturnc                 4    |rt        j                  |      S d S r   )r   model_validate)r   r   s     r   
_to_entityzCompanyRepository._to_entity   s    9A}++H5KtKr   entityc                 4    t        di |j                         S )N )r   
model_dump)r   r   s     r   _to_db_modelzCompanyRepository._to_db_model   s    -**,--r   company_datac                 @   K   | j                  |       d {   S 7 wr   )create)r   r   s     r   create_companyz CompanyRepository.create_company   s     [[....s   user_idc                    K   | j                   j                  t              j                  t        j                  |k(        j                         S wr   )r
   queryr   filterr!   first)r   r!   s     r   get_by_user_idz CompanyRepository.get_by_user_id   s6     ww}}W%,,W__-GHNNPPs   AA)__name__
__module____qualname__r   r   r   r   r   r   r   r    intr&   __classcell__)r   s   @r   r	   r	      sk    &7 &L7 Lx/F L.= .W ./ /= /QC QH]4K Qr   r	   N)sqlalchemy.ormr   modelsr   schemas.companyr   repositories.base_repositoryr   typingr   r	   r   r   r   <module>r1      s,    "  ) 7 Q}g'=> Qr   