
    j)                       U d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 ddl
mZm
Z
mZ ddlmZmZmZ eez  ez  dz  Zed   Z eh d	      Zd
ed<    ej2                  d      Zd
ed<    G d de      Z edd       G d d             Z edd       G d d             Z edd       G d d             Z edd       G d d             Z  edd       G d d             Z! edd       G d deeef                Z"y)zBTyped weekly scheduling values shared by the schedule ledger host.    )annotationsN)IteratorMapping)	dataclassfield)datedatetimetime)FinalLiteraloverride)dailyweeklymonthlyremindercutoff>   unknown	abandonedsent_auditedknown_failurer   _TERMINAL_STATESz[0-9a-f]{64}_VALID_DIGESTc                      e Zd ZdZy)CustomerScheduleErrorz=Raised when schedule state is corrupt, incomplete, or unsafe.N)__name__
__module____qualname____doc__     /home/cube/projects/richard/.worktrees/nutricoach-v140-impl/dualcoach/profile/checkin_cli/weekly_operations_schedule_host_models_r4.pyr   r      s    Gr    r   T)frozenslotsc                  D    e Zd ZU dZded<   ded<   ded<   ded<   ded	<   y
)NonResponseReviewCandidatezEA deterministic operator-review signal; never a delivery instruction.strcorrelation_idcustomer_keyr   missing_windowreminder_reservation_idr	   response_window_ends_atN)r   r   r   r   __annotations__r   r    r!   r%   r%      s#    O  %%r    r%   c                  ,    e Zd ZU ded<   ded<   ded<   y)CustomerScheduleTaskr&   r(   TaskKindkindr   kst_dayN)r   r   r   r,   r   r    r!   r.   r.   "   s    
NMr    r.   c                  X    e Zd ZU dZded<    ed      Zded<    ed      Zded<   dd	Zy
)WeeklyOperationsSchedulePolicyz?Exact KST evaluator policy for separately authorized customers.zfrozenset[str]enabled_customer_keys   r
   reminder_time   cutoff_timec                z    | j                   t        d      k7  s| j                  t        d      k7  rt        d      y )Nr5   r7   z%weekly operations schedule is invalid)r6   r
   r8   r   selfs    r!   __post_init__z,WeeklyOperationsSchedulePolicy.__post_init__1   s7    b)T-=-=b-I'(OPP .Jr    NreturnNone)	r   r   r   r   r,   r
   r6   r8   r<   r   r    r!   r3   r3   )   s-    I))r(M4"RK Qr    r3   c                  .    e Zd ZU dZded<   ded<   ddZy) ApprovedReminderScheduleEvidencezBPinned approval evidence required before projecting reminder work.r&   policy_digestconfig_digestc                j    t        d | j                  | j                  fD              rt        d      y )Nc              3  J   K   | ]  }t         j                  |      d u   y wNr   	fullmatch.0values     r!   	<genexpr>zAApprovedReminderScheduleEvidence.__post_init__.<locals>.<genexpr>>   s(      
A ##E*d2A   !#z%reminder schedule evidence is invalid)anyrB   rC   r   r:   s    r!   r<   z.ApprovedReminderScheduleEvidence.__post_init__=   s;     
,,d.@.@A
 
 ((OPP	
r    Nr=   r   r   r   r   r,   r<   r   r    r!   rA   rA   6   s    LQr    rA   c                      e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ddZy)"WeeklyReminderReservationAuthorityzEEvery immutable provider-admission pin persisted with an ON reminder.r&   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intcanonical_sequencecanonical_digestc                   | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  f}t        d |D              rt        d      | j                  dk  s| j                  st        d      y )Nc              3  J   K   | ]  }t         j                  |      d u   y wrF   rG   rI   s     r!   rL   zCWeeklyReminderReservationAuthority.__post_init__.<locals>.<genexpr>g   s!     K7%}&&u-57rM   z$weekly reminder authority is invalidr   z(weekly reminder authority pin is invalid)rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r]   r`   rN   r   r_   r\   )r;   digestss     r!   r<   z0WeeklyReminderReservationAuthority.__post_init__X   s    !!))!!**))))''((!!
 K7KK'(NOO""Q&d.@.@'(RSS /Ar    Nr=   rO   r   r    r!   rQ   rQ   E   s_    O!!""!!!!  Tr    rQ   c                     e Zd ZU dZded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   dZded<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded <   dZded!<   dZded"<   dZded#<   dZded$<   d%Zd&ed'<    ed(d(d()      Zd*ed+<   ed1d,       Zed2d-       Zed3d.       Zd4d/Zd5d0Zy)6ScheduledDeliveryReceiptz=Bounded view of one immutable scheduled-delivery reservation.r&   reservation_idschedule_keyr(   r/   r0   r   r1   statebody_digesttemplate_digestdestination_digestregistry_digestrC   Nz
str | None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_digestz
int | Noneweekly_canonical_sequenceweekly_canonical_digestprovider_receipt
message_idreasonlegacy_claim_digestr   r^   append_sequenceF)defaultcomparereprboolprovider_authorityc                    |dk(  r| j                   j                         S |dv r| j                  S |dk(  r| j                  S |dk(  r| j                  S 	 | j                         |   S # t        $ r t        |      d w xY w)Nr1   >   r0   	task_kinddestinationbody)r1   	isoformatr0   rk   ri   to_dictKeyError)r;   keys     r!   __getitem__z$ScheduledDeliveryReceipt.__getitem__   s    )<<))++''99-***&=###	*<<>#&& 	*3-T)	*s   A& &A<c                4    t        | j                               S rF   )iterr   r:   s    r!   __iter__z!ScheduledDeliveryReceipt.__iter__   s    DLLN##r    c                4    t        | j                               S rF   )lenr   r:   s    r!   __len__z ScheduledDeliveryReceipt.__len__   s    4<<>""r    c                   i ddd| j                   d| j                  d| j                  d| j                  d| j                  d| j                  j                         d	| j                  d
| j                  d| j                  d| j                  d| j                  d| j                  d| j                  d| j                  d| j                  d| j                  | j                   | j"                  | j$                  | j&                  | j(                  | j*                  | j,                  | j.                  | j0                  | j2                  | j4                  | j6                  | j8                  | j:                  | j<                  dS )Nschema_version   rf   rg   r(   r0   r   r1   rh   ri   rj   rk   rl   rC   rm   rn   ro   rp   )rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   )rf   rg   r(   r0   r1   r   rh   ri   rj   rk   rl   rC   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r:   s    r!   r   z ScheduledDeliveryReceipt.to_dict   s   !
a!
d11!
 D--!
 D--	!

 DII!
 !
 t||--/!
 TZZ!
 4++!
 t33!
 !$"9"9!
 t33!
 T//!
 &t'C'C!
 .t/S/S!
  &t'C'C!!
" /0U0U#!
$ 04/S/S/3/S/S-1-O-O.2.Q.Q#'#;#;%)%?%?$($=$=#'#;#;)-)G)G'+'C'C $ 5 5//kk#'#;#;#33A!
 !	
r    c                H    | j                   t        vxs | j                   dk(  S )Nr   )rh   r   r:   s    r!   __bool__z!ScheduledDeliveryReceipt.__bool__   s     zz!11QTZZ>5QQr    )r   r&   r>   ReceiptValue)r>   zIterator[str])r>   r^   )r>   zdict[str, ReceiptValue])r>   r   ) r   r   r   r   r,   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r    r!   re   re   m   sl   G
NMJ*.Z.26#Z6*.Z.37$j726#Z626#Z604!:415"J5&**(,:,'+*+&**,0z0*.Z.#'j'!J
!FJ&**OS$UENN* * $ $ # #"
HRr    re   )#r   
__future__r   recollections.abcr   r   dataclassesr   r   r	   r   r
   typingr   r   r   r&   r^   r   r   r/   	frozensetr   r,   compiler   
ValueErrorr   r%   r.   r3   rA   rQ   re   r   r    r!   <module>r      sT   H " 	 - ( ) ) + +Sy4$&EF#= %  "rzz/2u 2HJ H $d#& & $& $d#  $ $d#	Q 	Q $	Q $d#Q Q $Q $d#$T $T $$TN $d#_RwsL'89 _R $_Rr    