Rework balances around per-parent days left and deduce the partner from FK
Manual entry now takes one parent's sjukpenningnivå, lägstanivå and dubbeldagar left (plus optional reserved days) and derives the rest in build_snapshot, shared with the scraper. The scraper also reads the family panel and exposes a partner deduction; with two parents it is saved as a 'deduced' snapshot (migration 002). Parent count is the single source of entitlement: one member gets 480 days and 96 savable at age 4, two get 240 and 48 each. Workspaces are capped at two parents. Also lands the in-flight squash of migrations 002–011 into the initial schema and the removal of planning_mode. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -25,8 +25,6 @@ _FULL_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS workspace (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
planning_mode TEXT NOT NULL DEFAULT 'solo'
|
||||
CHECK (planning_mode IN ('solo','couple')),
|
||||
created_at TIMESTAMP NOT NULL
|
||||
);
|
||||
|
||||
@@ -107,6 +105,7 @@ CREATE TABLE IF NOT EXISTS leave_wish (
|
||||
parent_personal_data_uuid TEXT,
|
||||
window_mode TEXT NOT NULL DEFAULT 'fixed'
|
||||
CHECK (window_mode IN ('fixed','flexible')),
|
||||
wants_dubbeldag INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
updated_at TIMESTAMP NOT NULL,
|
||||
FOREIGN KEY (workspace_id) REFERENCES workspace(id) ON DELETE CASCADE,
|
||||
@@ -119,7 +118,7 @@ CREATE TABLE IF NOT EXISTS parental_leave_fetch (
|
||||
personal_data_uuid TEXT NOT NULL,
|
||||
workspace_id TEXT NOT NULL,
|
||||
child_id TEXT NOT NULL,
|
||||
source TEXT NOT NULL CHECK (source IN ('scraped','manual')),
|
||||
source TEXT NOT NULL CHECK (source IN ('scraped','manual','deduced')),
|
||||
fetched_at TIMESTAMP NOT NULL,
|
||||
total_days INTEGER NOT NULL,
|
||||
days_used INTEGER NOT NULL,
|
||||
@@ -191,8 +190,8 @@ CREATE TABLE IF NOT EXISTS tip_dismissal (
|
||||
FOREIGN KEY (workspace_id) REFERENCES workspace(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Indexes (migration 011). Mirrored verbatim (same columns, same order, no
|
||||
-- partial indexes) from migrations/versions/011_add_indexes.py so
|
||||
-- Indexes. Kept in step (same columns, same order, no partial indexes) with
|
||||
-- migrations/versions/001_initial_schema.py so
|
||||
-- tests/integration/test_schema_parity.py, which compares index sets between
|
||||
-- the Alembic chain and this hand-maintained DDL, stays green. See the
|
||||
-- backend-perf audit §4 for what each index serves.
|
||||
|
||||
Reference in New Issue
Block a user