[
  {
    "type": "create_table",
    "description": "Create daybook_list_schedule table for per-day start times",
    "database": "{{store}}",
    "check_query": "SHOW TABLES LIKE 'daybook_list_schedule'",
    "sql": "CREATE TABLE `daybook_list_schedule` (\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n  `listId` int(10) unsigned NOT NULL COMMENT 'FK to daybook_task_lists.id',\n  `dayOfWeek` enum('SUN','MON','TUE','WED','THU','FRI','SAT') NOT NULL,\n  `startTime` time NOT NULL COMMENT 'When this list becomes active',\n  `isActive` tinyint(1) unsigned DEFAULT 1,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_list_day` (`listId`, `dayOfWeek`),\n  KEY `idx_day_time` (`dayOfWeek`, `startTime`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Per-day schedule for task lists in Daybook'"
  },
  {
    "type": "insert",
    "description": "Seed default schedules for existing daybook_task_lists (OPENING at 8am, CLOSING at 17:00)",
    "database": "{{store}}",
    "check_query": "SELECT 1 FROM daybook_list_schedule LIMIT 1",
    "sql": "INSERT INTO daybook_list_schedule (listId, dayOfWeek, startTime, isActive) SELECT dtl.id, d.day, CASE WHEN UPPER(tg.groupName) LIKE '%OPEN%' THEN '08:00:00' WHEN UPPER(tg.groupName) LIKE '%CLOS%' THEN '17:00:00' ELSE '09:00:00' END, 1 FROM daybook_task_lists dtl JOIN taskGroups tg ON dtl.groupId = tg.id CROSS JOIN (SELECT 'SUN' as day UNION SELECT 'MON' UNION SELECT 'TUE' UNION SELECT 'WED' UNION SELECT 'THU' UNION SELECT 'FRI' UNION SELECT 'SAT') d WHERE dtl.scheduledDays LIKE CONCAT('%', d.day, '%')"
  }
]
