-- =====================================================================
-- 2026_sprint7_proc_unit.sql — اسپرینت ۷
-- واحد/یکا + توضیحاتِ پروسیجر، و مقدارِ مصرف در هر ثبت (مثلاً فیلر ۲ سی‌سی).
-- کسرِ انبار بر اساسِ مقدار × BOM مقیاس می‌خورد (وقتی انبار فعال شود).
-- افزایشی، اجرای مجدد امن. دیتابیس: shadicli_nurse
-- =====================================================================
SET NAMES utf8mb4;

-- واحد/یکای پروسیجر (سی‌سی / شات / جلسه / واحد / عدد ...)
SET @c := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='procedures' AND COLUMN_NAME='unit_label');
SET @s := IF(@c=0, "ALTER TABLE `procedures` ADD COLUMN `unit_label` VARCHAR(40) NULL DEFAULT NULL AFTER `category`", 'SELECT 1');
PREPARE st FROM @s; EXECUTE st; DEALLOCATE PREPARE st;

-- توضیحاتِ پروسیجر
SET @c := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='procedures' AND COLUMN_NAME='description');
SET @s := IF(@c=0, "ALTER TABLE `procedures` ADD COLUMN `description` TEXT NULL DEFAULT NULL", 'SELECT 1');
PREPARE st FROM @s; EXECUTE st; DEALLOCATE PREPARE st;

-- مقدارِ مصرف در هر ثبتِ پروسیجر (مثلاً 2 سی‌سی، 30 شات). NULL = نامشخص (۱ فرض می‌شود)
SET @c := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='record_procedures' AND COLUMN_NAME='amount');
SET @s := IF(@c=0, "ALTER TABLE `record_procedures` ADD COLUMN `amount` DECIMAL(10,2) NULL DEFAULT NULL AFTER `procedure_id`", 'SELECT 1');
PREPARE st FROM @s; EXECUTE st; DEALLOCATE PREPARE st;

-- =====================================================================
-- ROLLBACK:
-- ALTER TABLE `record_procedures` DROP COLUMN `amount`;
-- ALTER TABLE `procedures` DROP COLUMN `description`, DROP COLUMN `unit_label`;
-- =====================================================================
