
    Xj                         d dl mZ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  ee          Z G d deee
ef                   Z ee          Zd	S )
    )Session
joinedload)CRUDBase)Role)RoleMenu)
RoleCreate
RoleUpdate)
get_loggerc            
           e Zd Zddddedededee         fdZded	eded
z  fdZ	dededee         fdZ
dededee         dd
fdZdededed
z  fdZd
S )CRUDRoler   d   )skiplimitdbr   r   returnc                    |                     | j                                      | j        j                   }|                    |                              |                                          S N)querymodelfilter
is_deletedoffsetr   all)selfr   r   r   kwargsr   s         5/lsinfo/ai/hellotax_ai/base_platform/app/crud/role.py	get_multizCRUDRole.get_multi   sW    $$++
0E,EFF||D!!''..22444    codeNc                    |                     t                                        t          j        |k    t          j                                                   S r   )r   r   r   r   r   first)r   r   r   s      r   get_by_codezCRUDRole.get_by_code   s:    xx~~$$TY$%6DO8KLLRRTTTr   role_idc                    |                     t                                        t          j        |k    t          j                                                   }d |D             S )Nc                     g | ]	}|j         
S  )menu_id).0rms     r   
<listcomp>z&CRUDRole.get_menus.<locals>.<listcomp>   s    000r
000r   )r   r   r   r#   r   r   )r   r   r#   
role_menuss       r   	get_menuszCRUDRole.get_menus   sR    HHXVH$/X5H1HIISUU 	
 10Z0000r   menu_idsc                   |                     t                                        t          j        |k    t          j                                                   }|D ]	}d|_        
|D ](}t          ||          }|                    |           )|                                 t          	                    |          
                    d           d S )NT)r#   r'   )r#   zRole menus updated)r   r   r   r#   r   r   addcommitloggerbindinfo)r   r   r#   r-   existingr)   r'   	role_menus           r   update_menuszCRUDRole.update_menus   s    HHXVH$/X5H1HIISUU 	
  	! 	!B BMM 	 	G 'BBBIFF9
		G$$))*>?????r   c                   |                     t                                        t          t          j                                                t          j        |k    t          j                                                   S r   )	r   r   optionsr   r+   r   idr   r!   )r   r   r#   s      r   get_with_menuszCRUDRole.get_with_menus,   sO    HHTNNWZ0011VDGw&DO(;<<UWW		
r   )__name__
__module____qualname__r   intlistr   r   strr"   r,   r6   r:   r&   r   r   r   r      s%       45C 5 5 5G 5c 5c 5VZ[_V` 5 5 5 5Ug U Ut U U U U1G 1 1c 1 1 1 1@w @C @49 @QU @ @ @ @
 
c 
dTk 
 
 
 
 
 
r   r   N)sqlalchemy.ormr   r   app.crud.baser   app.models.roler   app.models.role_menur   app.schemas.roler   r	   common_loggingr
   r;   r1   r   roler&   r   r   <module>rH      s    . . . . . . . . " " " " " "             ) ) ) ) ) ) 3 3 3 3 3 3 3 3 % % % % % %	H		%
 %
 %
 %
 %
xj*45 %
 %
 %
P x~~r   