Skip to content

Documentation


Documentation / @kizami/db / index / decideAutoBreakWaiver

Function: decideAutoBreakWaiver() ​

decideAutoBreakWaiver(db, params): Promise<{ createdAt: number; decidedAt: number | null; decidedBy: string | null; decisionNote: string | null; id: string; reason: string; requestedBy: string; requiredSteps: number; status: string; step1DecidedAt: number | null; step1DecidedBy: string | null; tenantId: string; userId: string; waiveDate: string; } | null>

Defined in: packages/db/src/queries/auto-break-waivers.ts:119

pending(または fromStatus で指定した状態)の申請を approve/reject する。対象がその状態でない (既に決定済み・取り下げ済み)場合は 0件更新となり null を返す(呼び出し側はこれを競合・ 二重操作の合図として扱う)。

一次承認(status = "approved_step1")では decided_by / decided_at は最終決裁の欄として 空のまま残し、一次承認者は step1_decided_by / step1_decided_at に記録する。

approved にする場合、同一 (tenantId, userId, waiveDate) の approved 重複は schema 側の部分 UNIQUE index (auto_break_waivers_approved_unique_idx) が防ぐため、 ここでは事前チェックをせず UNIQUE 制約違反を呼び出し側(isUniqueConstraintError)に委ねる。

Parameters ​

db ​

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

params ​

DecideAutoBreakWaiverParams

Returns ​

Promise<{ createdAt: number; decidedAt: number | null; decidedBy: string | null; decisionNote: string | null; id: string; reason: string; requestedBy: string; requiredSteps: number; status: string; step1DecidedAt: number | null; step1DecidedBy: string | null; tenantId: string; userId: string; waiveDate: string; } | null>