o
    "i6                     @   sj   d Z 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
mZ G dd deee
ef ZeeZd	S )
z-
CRUD operations for Tenant (Company) model.
    )Optional)Session)CRUDBase)Tenant)TenantCreateTenantUpdatec                   @   s|   e Zd ZdZdededee fddZdede	dee fdd	Z
ded
edee fddZddddede	de	fddZdS )
CRUDTenantz
    CRUD operations for Tenant model.

    Note: Tenant operations are typically restricted to platform admins
    and don't use the standard permission filtering.
    dbnamereturnc                C   s   dS )z
        Get tenant by name.

        Args:
            db: Database session
            name: Tenant name

        Returns:
            Tenant instance or None
        N )selfr	   r
   r   r   7/lsinfo/ai/hellotax_ai/base_platform/app/crud/tenant.pyget_by_name   s    zCRUDTenant.get_by_nameidc                C   s   | j ||dS )z5Alias for delete() method for backward compatibility.)r   )deletequeryr   filterr
   first)r   r	   r   r   r   r   remove   s   zCRUDTenant.removecodec                C   s   | ttj|k S )z
        Get tenant by code.

        Args:
            db: Database session
            code: Tenant code

        Returns:
            Tenant instance or None
        )r   r   r   r   r   )r   r	   r   r   r   r   get_by_code%   s   zCRUDTenant.get_by_coder   d   )skiplimitr   r   c                C   s&   | ttjdk|| S )z
        Get all active tenants.

        Args:
            db: Database session
            skip: Number of records to skip
            limit: Maximum number of records to return

        Returns:
            List of active tenant instances
        T)r   r   r   	is_activeoffsetr   all)r   r	   r   r   r   r   r   get_active_tenants2   s
   
zCRUDTenant.get_active_tenantsN)__name__
__module____qualname____doc__r   strr   r   r   intr   r   r   r   r   r   r   r      s    "r   N)r"   typingr   sqlalchemy.ormr   app.crud.baser   app.models.tenantr   app.schemas.tenantr   r   r   tenantr   r   r   r   <module>   s    8