Skip to content

Documentation


Documentation / @kizami/db / listCurrentWorkPolicyKindsForTenant

Function: listCurrentWorkPolicyKindsForTenant()

listCurrentWorkPolicyKindsForTenant(db, params): Promise<Map<string, string | null>>

Defined in: packages/db/src/queries/work-policies.ts:327

テナント内の全ユーザーについて、指定日(通常は "今日")時点で実効の work_policy_versions.kind を 一括解決して返す(メンバー個別の労働時間制割当、2026-08-23 追加。GET /members 一覧の UI バッジ用)。

user_policy_assignments・work_policy_versions をそれぞれテナント全体で1回ずつ取得し (2クエリ、ユーザー数に比例しない)、アプリ側で「asOfDate 以下で最大の effectiveFrom」を ユーザーごと・ポリシーごとに解決する(listUserPolicyAssignments と同じ解決規則だが、 こちらは「テナント全体・特定1日」に特化した形にすることで SQL の絞り込み(lte)を効かせ、 履歴全件を持ち回らずに済むようにしている — 依頼の「1クエリで解決、N+1にしない」への対応)。

割当は存在するが解決不能(通常起こり得ない不整合)なユーザーの kind は null になる (listUserPolicyAssignments と同じ安全側フォールバック)。割当自体が無いユーザーは 戻り値の Map に含まれない(呼び出し側は .get(userId) ?? null で扱うこと)。

Parameters

db

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

params

asOfDate

string

tenantId

string

Returns

Promise<Map<string, string | null>>