Appearance
Documentation / @kizami/engine / WorkSystem
Type Alias: WorkSystem
WorkSystem = {
core:null;kind:"flex";settlement:"monthly";standardDayMinutes:number; } | {kind:"fixed";standardDayMinutes:number; } | {kind:"monthly_variable";periodStartDay:number; }
Defined in: types.ts:43
労働時間制(判別可能ユニオン)。kind で分岐する。
standardDayMinutes は flex/fixed の両方の branch に存在する。固定時間制では 「所定労働時間」そのもの(日次の所定内/所定外法定内の境界に使う)、フレックスでは 有給日の枠算入に使う値であり、意味は違うが「その日の基準となる労働時間」という役割は 共通しているため、フィールド名を揃えている。
monthly_variable(1ヶ月単位の変形労働時間制、労基法32条の2、docs/design/shift-work.md)は standardDayMinutes を持たない — 日ごとの所定は定数ではなく EngineInput.shifts の ShiftDay が個別に決めるため(シフト制の本質: 所定がテナント単位の定数から user×日付の可変データになる)。
Union Members
Type Literal
{ core: null; kind: "flex"; settlement: "monthly"; standardDayMinutes: number; }
core
core:
null
コアタイムは v0.1 では未対応(null 固定)
kind
kind:
"flex"
settlement
settlement:
"monthly"
standardDayMinutes
standardDayMinutes:
number
標準となる1日の労働時間(分)。有給日の枠算入に使う
Type Literal
{ kind: "fixed"; standardDayMinutes: number; }
kind
kind:
"fixed"
standardDayMinutes
standardDayMinutes:
number
所定労働時間(分)。1日8時間(法定)以内で設定される前提
Type Literal
{ kind: "monthly_variable"; periodStartDay: number; }
kind
kind:
"monthly_variable"
periodStartDay
periodStartDay:
number
変形期間の起点日(1〜28、docs/design/shift-work.md 決定事項3)。 期間はこの日から翌月の同日前日までの1ヶ月(例: 16なら16日〜翌15日)。 1〜28に制限しているのは、29〜31日だと月によって存在せず期間の起点が 一意に決まらなくなるため(2月は28日までしかない)。