Skip to content

Documentation


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.shiftsShiftDay が個別に決めるため(シフト制の本質: 所定がテナント単位の定数から 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日までしかない)。