-- =====================================================================
-- 2026_sprint6_timesheet.sql — اسپرینت ۶
-- تایم‌شیتِ جدول‌رنگی + اتصالِ سایت + گزینه‌ی انبار.
-- افزایشی، اجرای مجدد امن. دیتابیس: shadicli_nurse
-- =====================================================================
SET NAMES utf8mb4;

-- فاصله‌ی هر اسلات (تایمِ هر باکس) — برای قانونِ ظرفیت
SET @c := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='cw_appt_slot_rules' AND COLUMN_NAME='slot_interval_minutes');
SET @s := IF(@c=0, 'ALTER TABLE `cw_appt_slot_rules` ADD COLUMN `slot_interval_minutes` INT NOT NULL DEFAULT 30 AFTER `time_end`', 'SELECT 1');
PREPARE st FROM @s; EXECUTE st; DEALLOCATE PREPARE st;

-- یک قانونِ پیش‌فرضِ عمومی اگر هیچ قانونی نباشد (۹ تا ۲۰:۳۰، هر ۳۰ دقیقه، ظرفیت ۴)
INSERT INTO `cw_appt_slot_rules` (`day_of_week`,`time_start`,`time_end`,`slot_interval_minutes`,`max_bookings`,`is_active`,`created_at`)
SELECT NULL,'09:00:00','20:30:00',30,4,1,NOW()
WHERE NOT EXISTS (SELECT 1 FROM `cw_appt_slot_rules`);

-- =====================================================================
-- ROLLBACK:
-- ALTER TABLE `cw_appt_slot_rules` DROP COLUMN `slot_interval_minutes`;
-- =====================================================================
