
    j                    "   U d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZmZmZmZ  ej$                  d	      Zd
ed<    ej$                  d      Zd
ed<    ed      Z	 	 	 	 ddZddZ	 	 	 	 ddZddZddZdd	 	 	 	 	 ddZy)z6Typed weekly authority fields in schedule ledger rows.    )annotationsN)Mapping)date)FinalNeverTypeVarassert_never   )CustomerScheduleErrorScheduledDeliveryReceiptTaskKind"WeeklyReminderReservationAuthorityz[0-9a-f]{64}r   _VALID_DIGESTz![A-Za-z0-9][A-Za-z0-9._:-]{0,159}_VALID_OPAQUERowValuec                <   | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  dS )zGSerialize immutable authority pins without changing ledger field names.)weekly_authority_digestweekly_customer_identity_digestweekly_candidate_digest weekly_canonical_registry_digestweekly_canonical_binding_digestweekly_sidecar_authority_digestweekly_sidecar_history_digestweekly_ledger_authority_digestweekly_owner_digestweekly_consent_digestweekly_feature_epochweekly_route_digestweekly_canonical_sequenceweekly_canonical_digest)authority_digestcustomer_identity_digestcandidate_digestcanonical_registry_digestcanonical_binding_digestsidecar_authority_digestsidecar_history_digestledger_authority_digestowner_digestconsent_digestfeature_epochroute_digestcanonical_sequencecanonical_digest)	authoritys    /home/cube/projects/richard/.worktrees/nutricoach-v140-impl/dualcoach/profile/checkin_cli/weekly_operations_schedule_host_rows_r4.pyweekly_authority_fieldsr1      s    
 $-#=#=+4+M+M#,#=#=,5,O,O+4+M+M+4+M+M)2)I)I*3*K*K(55!*!9!9 ) 7 7(55%.%A%A#,#=#=     c                    | j                  |      }t        |t              rt        j	                  |      t        | d      |S )Nz digest is invalid)get
isinstancestrr   	fullmatchr   )rownamelabelvalues       r0   _digestr<   ,   sA    GGDMEeS!]%<%<U%C%K#ug-?$@AALr2   c                   | j                   y| j                  }|t        d      | j                  }|t        j                  |      t        d      t        t        | dd      t        | dd      t        | dd	      t        | d
d      t        | dd      t        | dd      t        | dd      t        | dd      t        | dd      t        | dd      |t        | dd      |t        | dd            S )z;Parse the complete weekly authority tuple from one receipt.Nz-weekly reminder canonical sequence is invalidz*weekly reminder authority row is malformedr   zweekly authorityr   zweekly customerr   zweekly candidater   zweekly registryr   zweekly canonical bindingr   zweekly sidecar authorityr   zweekly sidecar historyr   zweekly ledger authorityr   zweekly ownerr   zweekly consentr   zweekly router    zweekly canonical)r   r   r   r   r   r7   r   r<   )r8   sequencer+   s      r0   weekly_authority_from_receiptr?   3   s    ""*,,H#$STT,,M 7 7 F N#$PQQ-.0BC68IJ.0BC79JK68RS68RS46NO57PQ*N;,.>?*N;.0BC r2   c                v    | xdk(  r yxdk(  r yxdk(  r yxdk(  r yxdk(  r y}t        t        |             y )Ndailyweeklymonthlyremindercutoff)r	   _invalid_task_kind)r;   unreachables     r0   
_task_kindrH   Q   s4    
+K89r2   c                    t        d|        )Nz)scheduled-delivery task kind is invalid: )r   )r;   s    r0   rF   rF   a   s    
"KE7 S
TTr2   F)provider_authorityc               V   dD ci c](  }|t        | j                  |      x}t              r|nd* }}| j                  d      }t        d#i dt        | d         dt        | d         dt        | d         dt	        t        | d               d	t        j                  t        | d	               d
t        | d
         dt        | d         dt        | d         dt        | d         dt        | d         dt        | d         d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   dt        |      t        u r|ndd|d   d|d   d|d   d|d   d |d    d!t        t        | d!               d"|S c c}w )$z=Build the bounded receipt view from one validated ledger row.)r   r   r   r   r   r   r   r   r   r   r   r   r    provider_receipt
message_idreasonlegacy_claim_digestNr   reservation_idschedule_keycustomer_keykind	task_kindkst_daystatebody_digesttemplate_digestdestination_digestregistry_digestconfig_digestr   r   r   r   r   r   r   r   r   r   r   r   r    rL   rM   rN   rO   append_sequencerJ    )	r5   r4   r6   r   rH   r   fromisoformattypeint)r8   rJ   r9   r;   text_fieldsr>   s         r0   receipt_from_rowrb   e   s   

D 	z3774="8%#>eDH
  , ww23H#  3/01 ^,-  ^,-  C,-.	 
 ""3s9~#67  #g,  M*+  C 123  s#789  C 123  #o./  !,,E F  )44U(V  !,,E F  *55W)X   )44U(V! " )44U(V# $ '22Q&R% & (33S'T' ( ((=>) * **AB+ , ))?@- . ((=>/ 0 /38n.C(1 2 !,,E F3 4 %%785 6 |,7 8 8$9 : ((=>; < C$5 678= > .?   /s   -F&)r/   r   returnzdict[str, str | int])r8   Mapping[str, RowValue]r9   r6   r:   r6   rc   r6   )r8   r   rc   z)WeeklyReminderReservationAuthority | None)r;   r6   rc   r   )r;   r6   rc   r   )r8   rd   rJ   boolrc   r   )__doc__
__future__r   recollections.abcr   datetimer   typingr   r   r   r	   )weekly_operations_schedule_host_models_r4r   r   r   r   compiler   __annotations__r   r   r1   r<   r?   rH   rF   rb   r]   r2   r0   <module>ro      s    < " 	 #  6 6  "rzz/2u 2!rzz"FGu G:1,	!.<: U  %=	= = 	=r2   