from pathlib import Path import sys from sqlalchemy import text ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT)) from app.database import engine # noqa: E402 from app.services.work_schedule import DEFAULT_WORK_SCHEDULE # noqa: E402 def main() -> None: with engine.begin() as conn: conn.execute(text(""" CREATE TABLE IF NOT EXISTS work_schedules ( id INT NOT NULL PRIMARY KEY, day_start VARCHAR(5) NOT NULL, day_end VARCHAR(5) NOT NULL, lunch_start VARCHAR(5) NOT NULL, lunch_end VARCHAR(5) NOT NULL, dinner_start VARCHAR(5) NOT NULL, dinner_end VARCHAR(5) NOT NULL, overtime_start VARCHAR(5) NOT NULL, overtime_end VARCHAR(5) NOT NULL, night_start VARCHAR(5) NOT NULL, night_end VARCHAR(5) NOT NULL, attendance_latitude DECIMAL(10, 7) NULL, attendance_longitude DECIMAL(10, 7) NULL, attendance_radius_meters INT NOT NULL DEFAULT 500, auto_submit_hours DECIMAL(10, 2) NOT NULL DEFAULT 15, updated_by VARCHAR(20) NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 """)) exists = conn.execute( text("SELECT COUNT(*) FROM work_schedules WHERE id = 1") ).scalar_one() if not exists: conn.execute( text(""" INSERT INTO work_schedules ( id, day_start, day_end, lunch_start, lunch_end, dinner_start, dinner_end, overtime_start, overtime_end, night_start, night_end ) VALUES ( 1, :day_start, :day_end, :lunch_start, :lunch_end, :dinner_start, :dinner_end, :overtime_start, :overtime_end, :night_start, :night_end ) """), DEFAULT_WORK_SCHEDULE, ) print("work_schedules migrated") if __name__ == "__main__": main()