o
    iZ                     @  s:   d Z ddlmZ ddlmZ ddlmZ G dd dZdS )a  Tenant-aware database routing.

The router selects the tenant data-plane database dynamically while preserving
the existing ``config.db`` helpers. Existing apps can continue using their
current DB access until the gateway begins passing explicit tenant context.
    )annotations)Any)build_database_urlc                   @  s   e Zd ZdZddd	Zd
S )DatabaseRouterz?Resolve the correct tenant database binding for an app request.tenantdict[str, Any] | Noneapp_id
str | Nonereturndict[str, Any]c                C  s>   d }|r| dpd| d }|||rt|dS d dS )Ndata_db_nametenant_slug)r   db_namedatabase_url)getr   )selfr   r   r    r   platform/routing/db_router.pyresolve   s   
zDatabaseRouter.resolveN)r   r   r   r	   r
   r   )__name__
__module____qualname____doc__r   r   r   r   r   r      s    r   N)r   
__future__r   typingr   	config.dbr   r   r   r   r   r   <module>   s
    