BEGIN; ALTER TABLE user_account ADD COLUMN account_kind varchar(24) NOT NULL DEFAULT 'customer' CHECK (account_kind IN ('customer','operator')); UPDATE user_account SET account_kind='operator' WHERE platform_role <> 'customer'; ALTER TABLE user_account ADD CONSTRAINT user_account_kind_role_check CHECK ( (account_kind='customer' AND platform_role='customer') OR (account_kind='operator' AND platform_role IN ('ops_viewer','ops_operator','ops_approver','ops_admin')) ); CREATE INDEX user_account_operator_identity_idx ON user_account(oidc_issuer,oidc_subject,tenant_id) WHERE account_kind='operator' AND status='active'; COMMENT ON COLUMN user_account.account_kind IS 'Hard boundary between household customer identities and dedicated maintenance operator identities.'; COMMIT;