"""persist project_constraints Revision ID: f647c6bd94ae Revises: a2c893432a1f Create Date: 2026-07-27 01:29:36.369652 """ import json import sqlalchemy as sa from alembic import op # revision identifiers, used by Alembic. revision = "f647c6bd94ae" down_revision = "a2c893432a1f" branch_labels = None depends_on = None def upgrade(): default_constraints = json.dumps( { "dejeuner_start": 11, "dejeuner_end": 14, "diner_start": 19, "diner_end": 22, "nuit_start": 22, "nuit_end": 10, "duree_repas_h": 1.0, "duree_nuit_h": 8.0, "duree_pause_h": 0.5, } ) op.add_column( "projects", sa.Column( "constraints", sa.JSON(), nullable=False, server_default=default_constraints, ), ) # drop the server_default after backfill so future inserts must go through # the Pydantic model (PlanningConstraints) rather than silently relying on # a DB-level default that can drift from the schema's defaults over time op.alter_column("projects", "constraints", server_default=None) def downgrade(): op.drop_column("projects", "constraints")