-- =====================================================================
-- 2026_sprint8_appt_type.sql — اسپرینت ۸
-- نوعِ نوبت (ویزیت/جراحی/لیزر) برای نوبت‌دهیِ کال‌سنتر.
-- افزایشی، اجرای مجدد امن. دیتابیس: shadicli_nurse
-- =====================================================================
SET NAMES utf8mb4;

SET @c := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='cw_appointments' AND COLUMN_NAME='appt_type');
SET @s := IF(@c=0,
  "ALTER TABLE `cw_appointments` ADD COLUMN `appt_type` ENUM('visit','surgery','laser','other') NOT NULL DEFAULT 'visit' AFTER `service`",
  'SELECT 1');
PREPARE st FROM @s; EXECUTE st; DEALLOCATE PREPARE st;

-- ایندکس برای فیلتر بر اساسِ نوع
SET @c := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='cw_appointments' AND INDEX_NAME='idx_appt_type');
SET @s := IF(@c=0, "ALTER TABLE `cw_appointments` ADD INDEX `idx_appt_type` (`appt_type`)", 'SELECT 1');
PREPARE st FROM @s; EXECUTE st; DEALLOCATE PREPARE st;

-- =====================================================================
-- ROLLBACK:
-- ALTER TABLE `cw_appointments` DROP INDEX `idx_appt_type`, DROP COLUMN `appt_type`;
-- =====================================================================
