
    Lx'in&                         S SK r S SKJr  S SK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
g)    N)models)timezonec                      \ rS rSr/ SQr/ SQr\R                  " S\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9r\R&                  " SSSSS9r\R*                  " SS9r\R*                  " SS9rS r " S S5      rSrg)Company   ))z1-5z1-5 employees)z5-20z5-20 employees)z20-50z20-50 employees)z50-100z50-100 employees)z100+z100+ employees))constructionConstruction)
technology
Technology)
healthcare
Healthcare)retailRetail)manufacturingManufacturing)servicesServices)otherOtherTFprimary_keydefaulteditable   )
max_length2   r   choices
   r   i  zSAPI endpoint URL for user authentication (e.g., https://api.example.com/auth/login))r   blanknull	help_textauto_now_addauto_nowc                     U R                   $ )N)nameselfs    D:\TimeStamps\company\models.py__str__Company.__str__'   s    yy    c                       \ rS rSrS/rSrg)Company.Meta*   -created_at N__name__
__module____qualname____firstlineno__ordering__static_attributes__r4   r/   r,   Metar1   *   	    !?r/   r<   r4   N)r6   r7   r8   r9   COMPANY_SIZE_CHOICESINDUSTRY_CHOICESr   	UUIDFielduuiduuid4id	CharFieldr)   industrycompany_sizeprimary_location	JSONFieldlistoperating_countriesURLFieldapi_endpointDateTimeField
created_at
updated_atr-   r<   r;   r4   r/   r,   r   r      s     
		dDJJ	OBs+D27GHH##r;OPL''37 **48??g	L %%48J%%t4J# #r/   r   c                      \ rS rSr/ SQr\R                  " S\R                  SS9r	\R                  " \\R                  SS9r\R                  " 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SS9r\R,                  " SS9r\R,                  " SS9r\R2                  " SS9r\R2                  " SS9rS r " S S5      rSrg)CollectiveAgreement-   )	)rakennusalan_tesu+   Rakennusalan työehtosopimus (Construction))kvteszKVTES (Municipal workers))avaintesz'AVAINTES (Healthcare & social services))teknologiateollisuuden_tesz'Teknologiateollisuuden TES (Technology))palvelualojen_tesz"Palvelualojen TES (Service sector))kaupan_alan_teszKaupan alan TES (Retail))byggnadszByggnads (Swedish Construction))r   zOther / Custom)noneu/   No collective agreement (use Työaikalaki only)TFr   collective_agreement	on_deleterelated_namer   r   r   )r   r!   r"   r      g      I@
max_digitsdecimal_placesr         Y@g      >@z22:00:00r    z07:00:00r$   r&   c                 T    U R                   R                   SU R                  5        3$ Nz - )companyr)   get_agreement_type_displayr*   s    r,   r-   CollectiveAgreement.__str__G   s(    ,,##$C(G(G(I'JKKr/   c                       \ rS rSrS/rSrg)CollectiveAgreement.MetaJ   r3   r4   Nr5   r4   r/   r,   r<   rj   J   r=   r/   r<   r4   N)r6   r7   r8   r9   AGREEMENT_TYPE_CHOICESr   r@   rA   rB   rC   OneToOneFieldr   CASCADErf   rD   agreement_typecustom_nameorganizationDecimalFieldovertime_2h_rateovertime_after_2h_ratenight_work_rate	TimeFieldnight_work_startnight_work_endrM   rN   rO   r-   r<   r;   r4   r/   r,   rQ   rQ   -   s
   
 
		dDJJ	OB""7fnnSijG%%=STN""cDIK##s$TJL**aSXY#00AaY_`))QqRWXO''
;%%j9N%%48J%%t4JL# #r/   rQ   c                   P   \ rS rSr\R
                  " S\R                  SS9r\R                  " \
\R                  SS9r\R                  " SSS	9r\R                  " SSS
S9r\R                  " S\R"                  SS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\R4                  " 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"\R4                  " SS9r#\R@                  " SS9r$\R@                  " SS9r%\R@                  " SS9r&\R4                  " SS9r'\R@                  " SS9r(\R@                  " SS9r)\R4                  " SS9r*\R@                  " SS9r+\RX                  " SS9r-\R@                  " SS9r.\R4                  " SS9r/\R4                  " SS9r0\R4                  " SS9r1\R4                  " SS9r2\R4                  " SS9r3\R4                  " SS9r4\RX                  " S S9r5\RX                  " S!S9r6\R4                  " SS9r7\R4                  " SS9r8\R                  " S"/ S#QS$S%9r9\Rt                  " S&S'S(S)9r;\Rt                  " S&S'S(S)9r<\R4                  " SS9r=\R4                  " SS9r>\R~                  " SS*9r@\R~                  " SS+9rAS, rB " S- S.5      rCS/rDg0)1WorkingTimePolicyM   TFr   working_time_policiesr\   r   z5Policy name (e.g., 'Standard 8-16', 'Flexible Hours'))r   r#   z"Optional description of the policy)r!   r"   r#   z	user.Usercreated_working_time_policies)r]   r"   r!   r^   z08:00:00r    z16:00:00z10:00:00z15:00:00z14:00:00z06:00:00z20:00:00i(   P               g      @rR   g      ?g       @   ))lowLow)mediumMedium)highHighr   r   r   r   r   r_   rc   r`   r$   r&   c                 L    U R                    SU R                  R                    3$ re   )r)   rf   r*   s    r,   r-   WorkingTimePolicy.__str__   s"    ))C 1 1233r/   c                       \ rS rSrS/rSrSrg)WorkingTimePolicy.Meta   r3   zWorking Time Policiesr4   N)r6   r7   r8   r9   r:   verbose_name_pluralr;   r4   r/   r,   r<   r      s    !?5r/   r<   r4   N)Er6   r7   r8   r9   r   r@   rA   rB   rC   
ForeignKeyr   rn   rf   rD   r)   	TextFielddescriptionSET_NULL
created_byrv   monday_friday_startmonday_friday_endsaturday_startsaturday_endsunday_start
sunday_endBooleanFielduse_flextimecore_hours_startcore_hours_endflex_range_startflex_range_endIntegerField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
FloatField 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_sensitivityrr   overtime_weekends_rateovertime_holidays_raterequire_manager_approvalworkers_self_register_overtimerM   rN   rO   r-   r<   r;   r4   r/   r,   rz   rz   M   sc   			dDJJ	OB6>>PghGs6mnD""DDhiK"";&//PT\`  pO  PJ !**:>((< $$Z8N##J7L"":6L!!*5J&&u5L''
;%%j9N''
;%%j9N++C8++B7 **59**26 & 3 3A >!'!4!4R!@ **48!..r:!'!4!4Q!? "..t<#)#6#6r#B '-'8'8'E$'-':':2'F$ #)"5"5e"D%+%8%8%G"%225A & 3 3E B!'!4!4U!C#00>+1+<+<S+I(,2,=,=c,J) !' 3 3D A#)#6#6t#D  **H $00AaY_`#00AaY_`%224@%+%8%8%G"%%48J%%t4J46 6r/   rz   c                      \ rS rSrSS/r\R                  " S\R                  SS9r	\R                  " \\R                  SS9r\R                  " S	\S
S9r\R                   " SSSSS9r\R$                  " \R(                  S9r\R$                  " 5       r\R$                  " 5       r\R0                  " SS9r\R0                  " SS9r\R0                  " SS9r\R0                  " SS9r\R0                  " SS9r\R<                  " SS9r\R<                  " SS9r \R0                  " SS9r!\R0                  " SS9r"\RF                  " SS9r$\RF                  " SS9r%S r& " S S5      r'Sr(g)VacationPolicy   )standard_finnishz2Standard Finnish law (2 days/month, 2.5 after 1yr))customzCustom accrual rateTFr   vacation_policyr\   r   r   r   r   r_   )ra   rb   r"   r!   r       d   r$   r&   c                 4    SU R                   R                   3$ )NzVacation Policy - )rf   r)   r*   s    r,   r-   VacationPolicy.__str__   s    #DLL$5$5#677r/   c                       \ rS rSrS/rSrg)VacationPolicy.Meta   r3   r4   Nr5   r4   r/   r,   r<   r      r=   r/   r<   r4   N))r6   r7   r8   r9   VACATION_ACCRUAL_CHOICESr   r@   rA   rB   rC   rm   r   rn   rf   rD   vacation_accrual_typerr   custom_accrual_rate	DateFieldr   nowvacation_year_startvacation_period_startvacation_period_endr   track_vacation_daystrack_flex_timetrack_time_banktrack_overtime_balance
track_toilr   self_certification_dayssick_pay_percentageinclude_finnish_holidaysinclude_swedish_holidaysrM   rN   rO   r-   r<   r;   r4   r/   r,   r   r      su   R) 
 
		dDJJ	OB""7fnnSdeG #,,D\fxy --1SW_cd !**8<<@",,. **, !--d;))$7O))$7O#00>$$U3J %11!< --c:  &224@%225A%%48J%%t4J8# #r/   r   c                   L   \ rS rSr/ SQr\R                  " S\R                  SS9r	\R                  " \\R                  SS9r\R                  " S\S	S
9r\R                   " SS9r\R$                  " SSS9r\R$                  " SS9r\R$                  " SS9rS r " S S5      rSrg)OnboardingProgress   ))company_profilezCompany Profile)r[   zCollective Agreement)working_time_policyzWorking Time Policy)r   zVacation Policy)	completed	CompletedTFr   onboarding_progressr\   r   r   r   r    )r"   r!   r$   r&   c                 P    SU R                   R                   SU R                   S3$ )NzOnboarding Progress - z ())rf   r)   current_stepr*   s    r,   r-   OnboardingProgress.__str__   s)    '(9(9':"T=N=N<OqQQr/   c                       \ rS rSrS/rSrg)OnboardingProgress.Meta   r3   r4   Nr5   r4   r/   r,   r<   r      r=   r/   r<   r4   N)r6   r7   r8   r9   STEPSr   r@   rA   rB   rC   rm   r   rn   rf   rD   r   r   is_completedrM   completed_atrN   rO   r-   r<   r;   r4   r/   r,   r   r      s    E 
		dDJJ	OB""7fnnShiG##r5J[\L&&u5L''T>L%%48J%%t4JR# #r/   r   )rA   	django.dbr   django.utilsr   Modelr   rQ   rz   r   r   r4   r/   r,   <module>r      sd      !&#fll &#P#&,, #@L6 L6\(#V\\ (#T# #r/   