Skip to content

Documentation


Documentation / @kizami/db / upsertShiftDaysForPlan

Function: upsertShiftDaysForPlan()

upsertShiftDaysForPlan(db, params): Promise<object[]>

Defined in: packages/db/src/queries/shifts.ts:254

plan 単位の一括 upsert。days の各日付について、(tenant, user, date) の現在有効な行が あればそれを supersede する新しい行を、無ければ新規行を追記する (docs/design/shift-work.md 決定事項1: 確定前後を問わず同じ supersede メカニズムを使う。 「未確定なら上書き」に見える挙動も、実体は supersede チェーンが積み上がっているだけ)。

同一 plan 内で同じ日付が2回以上渡された場合、後勝ち(配列の後の要素が前の要素を supersede する形で連鎖する)。呼び出し側(apps/api/src/routes/shifts.ts)は通常この重複を作らないが、 クエリ層としても安全側(例外にせず最後の値が有効になる)に倒しておく。

Parameters

db

Database | SQLiteTransaction<"async", ResultSet, schema, ExtractTablesWithRelations<schema>>

params

createdAt

number

createdBy

string

days

ShiftDayFields & object[]

planId

string

tenantId

string

userId

string

Returns

Promise<object[]>