-- ============================================================================
--  2026_sprint30h_consent_aftercare.sql — فاز ۴: رضایت‌نامه و مراقبتِ بعد
--  ۱۰۰٪ ADDITIVE / idempotent / بدونِ DELIMITER.
-- ============================================================================
SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS `cw_consents` (
  `id`             BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `patient_id`     INT UNSIGNED NOT NULL,
  `visit_id`       INT UNSIGNED DEFAULT NULL,
  `plan_item_id`   BIGINT UNSIGNED DEFAULT NULL,
  `service_id`     INT UNSIGNED DEFAULT NULL,
  `template_key`   VARCHAR(40)  DEFAULT NULL,
  `title`          VARCHAR(180) NOT NULL,
  `body_snapshot`  MEDIUMTEXT   DEFAULT NULL,     -- متنِ رضایت در لحظهٔ ثبت (سابقهٔ تغییرناپذیر)
  `areas`          TEXT         DEFAULT NULL,      -- JSON: نقاطِ نقشهٔ صورت/بدن
  `status`         ENUM('required','signed','waived') NOT NULL DEFAULT 'required',
  `signer_name`    VARCHAR(160) DEFAULT NULL,      -- نامِ امضاکننده (بیمار/همراه)
  `signer_relation`VARCHAR(60)  DEFAULT NULL,
  `signed_by`      INT UNSIGNED DEFAULT NULL,       -- کاربرِ ثبت‌کننده
  `signed_at`      DATETIME     DEFAULT NULL,
  `waived_by`      INT UNSIGNED DEFAULT NULL,
  `waived_reason`  VARCHAR(255) DEFAULT NULL,
  `created_by`     INT UNSIGNED DEFAULT NULL,
  `created_at`     DATETIME     NOT NULL,
  `updated_at`     DATETIME     DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_patient` (`patient_id`),
  KEY `idx_visit` (`visit_id`),
  KEY `idx_plan_item` (`plan_item_id`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- قالب‌های رضایت‌نامه (اختیاری، برای پرکردنِ سریع)
CREATE TABLE IF NOT EXISTS `cw_consent_templates` (
  `id`          INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `template_key`VARCHAR(40) NOT NULL,
  `title`       VARCHAR(180) NOT NULL,
  `body`        MEDIUMTEXT   DEFAULT NULL,
  `is_active`   TINYINT(1)   NOT NULL DEFAULT 1,
  `created_at`  DATETIME     NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_key` (`template_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- توجه: متنِ رضایت‌نامه توسطِ سیستم ساخته نمی‌شود. مدیریتِ کلینیک باید متنِ تأییدشدهٔ خود را
-- در «مدیریتِ قالب‌های رضایت» وارد کند. (اصلاحِ نصب‌های قبلی در مهاجرتِ 30i انجام می‌شود.)

-- ROLLBACK (دستی):
--   DROP TABLE IF EXISTS `cw_consents`, `cw_consent_templates`;
