
    (i"                        S SK Jr  SSKJrJrJrJrJr   " S S\R                  5      r	 " S S\R                  5      r
 " S S	\R                  5      r " S
 S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      rg)    )serializers   )CompanyCollectiveAgreementWorkingTimePolicyVacationPolicyOnboardingProgressc                   (    \ rS rSr " S S5      rSrg)CompanySerializer   c                        \ rS rSr\r/ SQrSrg)CompanySerializer.Meta   )	idnameindustrycompany_sizeprimary_locationoperating_countriesapi_endpoint
created_at
updated_at N__name__
__module____qualname____firstlineno__r   modelfields__static_attributes__r       $D:\TimeStamps\company\serializers.pyMetar      s     Sr"   r$   r   Nr   r   r   r   r$   r!   r   r"   r#   r   r      s    S Sr"   r   c                   ,    \ rS rSrSr " S S5      rSrg)CompanySearchSerializer	   z,Simple serializer for company search resultsc                        \ rS rSr\rSS/rSrg)CompanySearchSerializer.Meta   r   r   r   Nr   r   r"   r#   r$   r*      s    r"   r$   r   N)r   r   r   r   __doc__r$   r!   r   r"   r#   r'   r'   	   s    6   r"   r'   c                   (    \ rS rSr " S S5      rSrg)CollectiveAgreementSerializer   c                        \ rS rSr\r/ SQrSrg)"CollectiveAgreementSerializer.Meta   )r   agreement_typecustom_nameorganizationovertime_2h_rateovertime_after_2h_ratenight_work_ratenight_work_startnight_work_endr   r   r   N)r   r   r   r   r   r   r    r!   r   r"   r#   r$   r1      s    #fr"   r$   r   Nr%   r   r"   r#   r.   r.      s    f fr"   r.   c                   p   ^  \ rS rSr\R
                  " 5       r " S S5      rU 4S jrS r	U 4S jr
SrU =r$ )WorkingTimePolicySerializer   c                   ,    \ rS rSr\r/ SQr/ SQr0 rSr	g) WorkingTimePolicySerializer.Meta   )/r   r   descriptioncompany
created_bymonday_friday_startmonday_friday_endsaturday_startsaturday_endsunday_start
sunday_enduse_flextimecore_hours_startcore_hours_endflex_range_startflex_range_endmax_flex_negativemax_flex_positiveuse_time_bankingmax_bank_balanceovertime_conversion_dailyovertime_conversion_weeklylunch_break_paidlunch_break_durationlunch_break_required_aftershort_break_requiredshort_break_duration_minutes short_break_required_after_hours minimum_total_break_time_minutesenable_violation_monitoringviolation_notification_enabledmonitor_daily_violationsmonitor_weekly_violationsmonitor_monthly_violationsmonitor_missing_breaks$violation_severity_warning_threshold%violation_severity_critical_thresholdburnout_detection_enabledburnout_notification_enabledburnout_sensitivityovertime_weekends_rateovertime_holidays_raterequire_manager_approvalworkers_self_register_overtimeassigned_users_countr   r   )r   rB   rC   r   r   rk   r   N)
r   r   r   r   r   r   r    read_only_fieldsextra_kwargsr!   r   r"   r#   r$   r?      s    !
  o
r"   r$   c                 L   > [         TU ]  " U0 UD6  0 U R                  EU l        g )N)super__init__r    )selfargskwargs	__class__s      r#   rp   $WorkingTimePolicySerializer.__init__/   s$    $)&)%or"   c                 6    UR                   R                  5       $ )z2Return the number of users assigned to this policy)assigned_userscount)rq   objs     r#   get_assigned_users_count4WorkingTimePolicySerializer.get_assigned_users_count4   s    !!''))r"   c                   > U R                   R                  S5      nU(       a   UR                  (       a  UR                  US'   SU;  a  U(       ah  [        UR                  S5      (       aM  SSKJn  UR                  R                  UR                  R                  S9R                  5       nU(       a  XAS'   O+SSKJn  UR                  R                  5       nU(       a  XAS'   [        TU ]-  U5      $ )z/Set company and created_by from request contextrequestrC   rB   
company_idr   )r   )r   )contextgetuserhasattrmodelsr   objectsfilterr~   firstro   create)rq   validated_datar}   r   rB   rt   s        r#   r   "WorkingTimePolicySerializer.create8   s     ,,""9-w||+2<<N<(N*77<<>>+!//00GLL4K4K0LRRT079- ,!////1079-w~n--r"   )r    )r   r   r   r   r   SerializerMethodFieldrk   r$   rp   rz   r   r!   __classcell__)rt   s   @r#   r<   r<      s0    &<<>
 
.&
*. .r"   r<   c                   (    \ rS rSr " S S5      rSrg)VacationPolicySerializerM   c                        \ rS rSr\r/ SQrSrg)VacationPolicySerializer.MetaN   )r   vacation_accrual_typecustom_accrual_ratevacation_year_startvacation_period_startvacation_period_endtrack_vacation_daystrack_flex_timetrack_time_banktrack_overtime_balance
track_toilself_certification_dayssick_pay_percentageinclude_finnish_holidaysinclude_swedish_holidaysr   r   r   N)r   r   r   r   r   r   r    r!   r   r"   r#   r$   r   N   s    Ir"   r$   r   Nr%   r   r"   r#   r   r   M   s    I Ir"   r   c                   (    \ rS rSr " S S5      rSrg)OnboardingProgressSerializerU   c                        \ rS rSr\r/ SQrSrg)!OnboardingProgressSerializer.MetaV   )r   current_stepis_completedcompleted_atr   r   r   N)r   r   r   r   r	   r   r    r!   r   r"   r#   r$   r   V   s    "cr"   r$   r   Nr%   r   r"   r#   r   r   U   s    d dr"   r   c                   V    \ rS rSrSr\" 5       r\" SS9r\	" SS9r
\" SS9r\" SS9rSrg)OnboardingDataSerializerZ   z+Combined serializer for all onboarding dataFrequiredr   N)r   r   r   r   r,   r   rB   r.   collective_agreementr<   working_time_policyr   vacation_policyr   onboarding_progressr!   r   r"   r#   r   r   Z   s8    5!G8%H5uE.>O6Fr"   r   c                       \ rS rSrSr\R                  " SS9r\R                  " \	R                  S9r\R                  " \	R                  S9r\R                  " SS9r\R                  " \R                  " SS9S9rSrg	)
Step1CompanyProfileSerializerb   z&Serializer for Step 1: Company Profile   )
max_lengthchoices   )childr   N)r   r   r   r   r,   r   	CharFieldr   ChoiceFieldr   INDUSTRY_CHOICESr   COMPANY_SIZE_CHOICESr   r   	ListFieldr   r!   r   r"   r#   r   r   b   so    0  C0D&&w/G/GHH**73O3OPL",,<%//k6K6KWX6YZr"   r   c                   @   \ rS rSrSr\R                  " \R                  S9r	\R                  " SSSS9r\R                  " SSSS9r\R                  " SS	SS
9r\R                  " SS	SS
9r\R                  " SS	SS
9r\R"                  " SS9r\R"                  " SS9rSrg)"Step2CollectiveAgreementSerializerj   z+Serializer for Step 2: Collective Agreementr   r   FT)r   r   allow_blankr   r   
max_digitsdecimal_placesr   r   r   N)r   r   r   r   r,   r   r   r   AGREEMENT_TYPE_CHOICESr3   r   r4   r5   DecimalFieldr6   r7   r8   	TimeFieldr9   r:   r!   r   r"   r#   r   r   j   s    5 ,,5H5_5_`N''3TXYK((C%UYZL"//1QY^_(55ST_de!..!AX]^O",,e< **E:Nr"   r   c                      \ rS rSrSr\R                  " 5       r\R                  " 5       r\R                  " SS9r
\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R                  " SS9r\R2                  " SSSS	9r\R2                  " SSSS	9r\R                  " SS9r\R                  " SS9rS
rg) Step3WorkingTimePolicySerializeru   z*Serializer for Step 3: Working Time PolicyFdefaultr   Tr   r   r   r   N)r   r   r   r   r,   r   r   rD   rE   BooleanFieldrJ   rK   rL   rM   rN   IntegerFieldrO   rP   rQ   rR   rS   rT   rU   rV   rW   r   rg   rh   ri   rj   r!   r   r"   r#   r   r   u   s^   4%//1#--/++E:L",,e< **E:N",,e< **E:N#00%@#00%@"//>"//? + 8 8% H!,!9!95!I"//=&33UC!,!9!95!I(55ST_de(55ST_de*77E%0%=%=e%L"r"   r   c                      \ rS rSrSr\R                  " \R                  S9r	\R                  " SSSS9r\R                  " 5       r\R                  " 5       r\R                  " 5       r\R                   " SS	9r\R                   " SS	9r\R                   " SS	9r\R                   " SS	9r\R                   " SS	9r\R,                  " SS
9r\R,                  " SS
9r\R                   " SS	9r\R                   " SS	9rSrg)Step4VacationPolicySerializer   z&Serializer for Step 4: Vacation Policyr   r   r   Fr   Tr   r   r   N)r   r   r   r   r,   r   r   r   VACATION_ACCRUAL_CHOICESr   r   r   	DateFieldr   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r"   r#   r   r      s    0'33N<c<cd%22aPQ\ab%//1'113%//1%224@!..t<O!..t<O(55dC))%8J)66F%22EB*77E*77Fr"   r   N)rest_frameworkr   r   r   r   r   r   r	   ModelSerializerr   r'   r.   r<   r   r   
Serializerr   r   r   r   r   r   r"   r#   <module>r      s    & g gS33 S
 k99  fK$?$? f6.+"="= 6.pI{:: Id;#>#> d
G{55 G[K$:$: [	;)?)? 	;M{'='= M.GK$:$: Gr"   