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