using System;
using Microsoft.EntityFrameworkCore.Migrations;

#nullable disable

namespace ClaudeDo.Data.Migrations
{
    /// <inheritdoc />
    public partial class PrimeWeekdays : Migration
    {
        /// <inheritdoc />
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<int>(
                name: "days_of_week",
                table: "prime_schedules",
                type: "INTEGER",
                nullable: false,
                defaultValue: 31);

            migrationBuilder.Sql(
                "UPDATE prime_schedules SET days_of_week = CASE WHEN workdays_only = 1 THEN 31 ELSE 127 END;");

            migrationBuilder.DropColumn(name: "start_date", table: "prime_schedules");
            migrationBuilder.DropColumn(name: "end_date", table: "prime_schedules");
            migrationBuilder.DropColumn(name: "workdays_only", table: "prime_schedules");
        }

        /// <inheritdoc />
        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<DateOnly>(
                name: "start_date", table: "prime_schedules",
                type: "TEXT", nullable: false, defaultValue: new DateOnly(2000, 1, 1));
            migrationBuilder.AddColumn<DateOnly>(
                name: "end_date", table: "prime_schedules",
                type: "TEXT", nullable: false, defaultValue: new DateOnly(2099, 12, 31));
            migrationBuilder.AddColumn<bool>(
                name: "workdays_only", table: "prime_schedules",
                type: "INTEGER", nullable: false, defaultValue: true);

            migrationBuilder.Sql(
                "UPDATE prime_schedules SET workdays_only = CASE WHEN days_of_week = 127 THEN 0 ELSE 1 END;");

            migrationBuilder.DropColumn(name: "days_of_week", table: "prime_schedules");
        }
    }
}
