Appearance
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
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>