-- =============================================================================
-- تشغيل يدوي على قاعدة البيانات uznet_ghs
-- جدول زيارات المشرفين الرسمي: SupVisits (وليس supVisits)
-- =============================================================================

-- ─── 1) جدول العقود: Contracts ───────────────────────────────────────────────
ALTER TABLE `Contracts`
  ADD COLUMN `indoor_trap_count` SMALLINT UNSIGNED NOT NULL DEFAULT 0
    COMMENT 'عدد الصناديق الداخلية (0-999)',
  ADD COLUMN `outdoor_trap_count` SMALLINT UNSIGNED NOT NULL DEFAULT 0
    COMMENT 'عدد الصناديق الخارجية (0-999)';


-- ─── 2) جدول زيارات المشرفين: SupVisits ────────────────────────────────────
ALTER TABLE `SupVisits`
  ADD COLUMN `trap_inspected` TINYINT(1) NOT NULL DEFAULT 0
    COMMENT '1 = تم فحص الصناديق لهذه الزيارة',
  ADD COLUMN `trap_indoor_count` SMALLINT UNSIGNED NOT NULL DEFAULT 0
    COMMENT 'snapshot عدد الداخلي وقت الفحص',
  ADD COLUMN `trap_outdoor_count` SMALLINT UNSIGNED NOT NULL DEFAULT 0
    COMMENT 'snapshot عدد الخارجي وقت الفحص';


-- ─── 3) إزالة الجدول المكرر الخاطئ (بعد حذف سجل التجربة إن وُجد) ─────────
-- DROP TABLE IF EXISTS `supVisits`;


-- ─── 4) جدول حالات الصناديق (يُنشأ تلقائياً من API أو يدوياً) ─────────────

CREATE TABLE IF NOT EXISTS `SupVisitTrapLines` (
  `ID` INT AUTO_INCREMENT PRIMARY KEY,
  `VisitID` INT NOT NULL,
  `CustName` VARCHAR(255) NOT NULL,
  `VisitDate` DATE NOT NULL,
  `SupName` VARCHAR(150) NULL,
  `BoxType` ENUM('indoor','outdoor') NOT NULL,
  `BoxNo` VARCHAR(30) NOT NULL,
  `FindingCode` VARCHAR(40) NULL,
  `FindingLabel` VARCHAR(120) NULL,
  `BaitPercent` TINYINT UNSIGNED NULL,
  `CreatedAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY `uk_visit_type_box` (`VisitID`, `BoxType`, `BoxNo`),
  KEY `idx_cust_date` (`CustName`, `VisitDate`),
  KEY `idx_visit` (`VisitID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
