Ë
    ÌiD  ã                  óŠ   — d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ  G d„ de«      Z G d„ d	e«      Z G d
„ de«      Zy)é    )Úannotations)Úabstractmethod)ÚOptionalÚProtocolÚSequence)ÚNodeRelation)ÚTimeGranularityc                  ód   — e Zd ZdZeedd„«       «       Zeedd„«       «       Zeedd„«       «       Zy)	Ú	TimeSpinea  Describes a table that contains dates at a specific time grain.

    One column must map to a standard granularity (one of the TimeGranularity enum members). Others might represent
    custom granularity columns. Custom granularity columns are not yet implemented.
    c                 ó   — y)z&dbt model where this time spine lives.N© ©Úselfs    úm/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt_semantic_interfaces/protocols/time_spine.pyÚnode_relationzTimeSpine.node_relation   ó   € ð 	ó    c                 ó   — y)úLThe column in the time spine that maps to one of our standard granularities.Nr   r   s    r   Úprimary_columnzTimeSpine.primary_column   r   r   c                 ó   — y)zEThe columns in the time spine table that map to custom granularities.Nr   r   s    r   Úcustom_granularitieszTimeSpine.custom_granularities   r   r   N)Úreturnr   )r   ÚTimeSpinePrimaryColumn)r   z*Sequence[TimeSpineCustomGranularityColumn])	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r   r   r   r   r   
   s[   „ ñð Øòó ó ðð Øòó ó ðð Øòó ó ñr   r   c                  óH   — e Zd ZdZeedd„«       «       Zeedd„«       «       Zy)r   r   c                 ó   — y©zThe column name.Nr   r   s    r   ÚnamezTimeSpinePrimaryColumn.name'   r   r   c                 ó   — yr"   r   r   s    r   Útime_granularityz'TimeSpinePrimaryColumn.time_granularity-   r   r   N©r   Ústr)r   r	   )r   r   r   r   r   r   r#   r%   r   r   r   r   r   $   s;   „ ÙVàØòó ó ðð Øòó ó ñr   r   c                  óH   — e Zd ZdZeedd„«       «       Zeedd„«       «       Zy)Ú TimeSpineCustomGranularityColumnzCA column in the time spine table that maps to a custom granularity.c                 ó   — yr"   r   r   s    r   r#   z%TimeSpineCustomGranularityColumn.name7   r   r   c                 ó   — yr"   r   r   s    r   Úcolumn_namez,TimeSpineCustomGranularityColumn.column_name=   r   r   Nr&   )r   zOptional[str])r   r   r   r   r   r   r#   r,   r   r   r   r)   r)   4   s;   „ ÙMàØòó ó ðð Øòó ó ñr   r)   N)Ú
__future__r   Úabcr   Útypingr   r   r   Ú5dbt_semantic_interfaces.implementations.node_relationr   Ú"dbt_semantic_interfaces.type_enumsr	   r   r   r)   r   r   r   ú<module>r2      s;   ðÝ "å ß /Ñ /å NÝ >ô�ô ô4˜Xô ô  xõ r   