-- ==============================================================================
-- MAHARASHTRA MUNICIPAL PROPERTY ERP - MODULES 11, 12, 13 UPGRADE
-- 11. Smart Vacancy Management (8,420 Total, 7,215 Occupied, 812 Vacant, 143 Under Repair, 121 Under Dispute, 89 Unauthorized)
-- 12. Unauthorized Occupancy & Encroachment Engine (7-Step Workflow)
-- 13. Maintenance Management (CMMS-Style Workflow, Work Orders, Configurable SLAs)
-- ==============================================================================

SET FOREIGN_KEY_CHECKS = 0;

-- 1. UPGRADE units_galas WITH SMART VACANCY FIELDS
ALTER TABLE `units_galas`
    ADD COLUMN IF NOT EXISTS `previous_tenant_name` VARCHAR(150) NULL AFTER `remarks`,
    ADD COLUMN IF NOT EXISTS `last_paid_rent` DECIMAL(12,2) NOT NULL DEFAULT 0.00 AFTER `previous_tenant_name`,
    ADD COLUMN IF NOT EXISTS `expected_rent` DECIMAL(12,2) NOT NULL DEFAULT 0.00 AFTER `last_paid_rent`,
    ADD COLUMN IF NOT EXISTS `vacant_since_date` DATE NULL AFTER `expected_rent`,
    ADD COLUMN IF NOT EXISTS `vacancy_reason` VARCHAR(255) NULL AFTER `vacant_since_date`,
    ADD COLUMN IF NOT EXISTS `recommended_action` VARCHAR(255) NULL AFTER `vacancy_reason`;

-- Seed rich sample vacant units with the required fields
UPDATE `units_galas` SET
    `status` = 'VACANT',
    `previous_tenant_name` = 'रमेश चंद्रकांत जोशी (M/s Joshi General Stores)',
    `last_paid_rent` = 11500.00,
    `expected_rent` = 14500.00,
    `vacant_since_date` = '2025-10-15',
    `vacancy_reason` = 'त्रैवार्षिक करार मुदत संपली व नूतनीकरणास नकार (Lease Expired)',
    `recommended_action` = 'सार्वजनिक ई-लिलाव प्रक्रिया राबवणे (Schedule Public E-Auction)'
WHERE `id` = 2;

UPDATE `units_galas` SET
    `status` = 'VACANT',
    `previous_tenant_name` = 'सुनील किसनराव काळे (Kale Cyber Cafe)',
    `last_paid_rent` = 8000.00,
    `expected_rent` = 10500.00,
    `vacant_since_date` = '2025-12-01',
    `vacancy_reason` = 'भोगवटादाराने स्वेच्छेने गाळा मनपाकडे समर्पित केला (Voluntary Surrender)',
    `recommended_action` = 'दिव्यांग / महिला बचत गट राखीव कोट्यातून वाटप (Allot under Reservation Quota)'
WHERE `id` = 3;

-- Add extra units to represent the required variety of statuses
INSERT INTO `units_galas` (
    `id`, `ulb_id`, `ward_id`, `complex_id`, `building_id`, `floor_id`,
    `unit_code`, `unit_number`, `shop_no`, `unit_name`, `category`, `unit_type`,
    `carpet_area_sqft`, `builtup_area`, `built_up_area_sqft`, `carpet_area_sqm`,
    `front_facing`, `status`, `previous_tenant_name`, `last_paid_rent`, `expected_rent`,
    `vacant_since_date`, `vacancy_reason`, `recommended_action`, `base_ready_reckoner_rent`, `current_market_rent`
) VALUES
(21, 1, 1, 1, 1, 1, 'NGP-W01-C001-B01-F01-S021', 'F-105', 'F-105', 'Office Space F-105', 'OFFICE', 'OFFICE', 380.00, 440.00, 440.00, 35.30, 'MAIN_ROAD', 'VACANT', 'अॅड. विलास शिंदे (Shinde & Associates)', 14000.00, 18000.00, '2026-01-10', 'भाडेपट्टा थकबाकीपोटी निष्कासन (Evicted for Arrears)', 'थकबाकी मंजुरीनंतर ई-निविदा काढणे (E-Tender after clearance)', 13000.00, 18000.00),
(22, 1, 2, 2, 2, 2, 'NGP-W02-C002-B02-F00-S022', 'G-012', 'G-012', 'Commercial Stall G-012', 'STALL', 'STALL', 150.00, 180.00, 180.00, 13.94, 'CORNER', 'VACANT', 'संजय मारुती पवार (Pawar Tea & Snacks)', 6500.00, 9000.00, '2026-02-15', 'संकुल अंतर्गत पुनर्रचना व नवीन गाळा (Newly Created Gala)', 'स्थानिक बेरोजगार युवकांसाठी राखीव सोडत (Direct Allotment via Lottery)', 6000.00, 9000.00),
(23, 1, 1, 1, 1, 1, 'NGP-W01-C001-B01-F00-S023', 'G-014', 'G-014', 'Shop G-014', 'SHOP', 'SHOP', 260.00, 310.00, 310.00, 24.15, 'MAIN_ROAD', 'UNDER_REPAIR', 'विकास ट्रेडर्स', 10500.00, 13000.00, '2026-04-01', 'स्ट्रक्चरल दुरुस्ती व स्लॅब वॉटरप्रूफिंग चालू', 'सार्वजनिक बांधकाम विभागाकडून दुरुस्ती प्रमाणपत्र घेणे', 10000.00, 13000.00),
(24, 1, 3, 3, 3, 3, 'NGP-W03-C003-B03-F01-S024', 'F-201', 'F-201', 'Banquet Stall F-201', 'SHOP', 'SHOP', 450.00, 520.00, 520.00, 41.80, 'MAIN_ROAD', 'UNDER_DISPUTE', 'मे. पाटील ब्रदर्स', 16000.00, 22000.00, '2025-06-20', 'दिवाणी न्यायालयात वारस हक्क वाद प्रलंबित (Court Dispute)', 'न्यायालयीन अंतिम निकालाची प्रतीक्षा व स्थिती ‘जैसे थे’', 15000.00, 22000.00),
(25, 1, 1, 1, 1, 1, 'NGP-W01-C001-B01-F00-S025', 'G-018', 'G-018', 'Shop G-018', 'SHOP', 'SHOP', 220.00, 260.00, 260.00, 20.44, 'CORNER', 'UNAUTHORIZED', 'अज्ञात अनधिकृत ताबेदार (Squatter)', 0.00, 12000.00, '2026-05-10', 'शटरचे कुलूप तोडून अनधिकृत ताबा (Forceful Trespass)', 'विशेष पोलीस पथकासह निष्कासन व सीलिंग कारवाई (Eviction Squad)', 9000.00, 12000.00)
ON DUPLICATE KEY UPDATE `status` = VALUES(`status`), `previous_tenant_name` = VALUES(`previous_tenant_name`);

-- 2. DEDICATED UNAUTHORIZED OCCUPANCY MODULE TABLES
DROP TABLE IF EXISTS `unauthorized_occupancy_actions`;
DROP TABLE IF EXISTS `unauthorized_occupancies`;

CREATE TABLE `unauthorized_occupancies` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `case_no` VARCHAR(60) NOT NULL UNIQUE,
    `ulb_id` INT UNSIGNED NOT NULL DEFAULT 1,
    `complex_id` INT UNSIGNED NOT NULL,
    `unit_id` INT UNSIGNED NOT NULL,
    `occupant_name` VARCHAR(150) NOT NULL,
    `occupant_phone` VARCHAR(20) NULL,
    `occupant_aadhaar_last4` VARCHAR(4) NULL,
    `business_nature` VARCHAR(150) NOT NULL,
    `encroached_area_sqft` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
    `field_officer_name` VARCHAR(100) NOT NULL,
    `field_officer_designation` VARCHAR(100) NOT NULL,
    `inspection_datetime` DATETIME NOT NULL,
    `latitude` DECIMAL(10,8) NOT NULL,
    `longitude` DECIMAL(11,8) NOT NULL,
    `geo_address` VARCHAR(255) NULL,
    `photo_evidence_url` VARCHAR(255) NOT NULL,
    `video_evidence_url` VARCHAR(255) NULL,
    `field_observations` TEXT NOT NULL,
    `notice_no` VARCHAR(80) NULL,
    `notice_issued_date` DATE NULL,
    `statutory_section` VARCHAR(100) NOT NULL DEFAULT 'Section 260 & 267 MMCA 1949',
    `notice_compliance_deadline` DATE NULL,
    `officer_review_notes` TEXT NULL,
    `officer_review_date` DATE NULL,
    `reviewed_by_officer` VARCHAR(100) NULL,
    `legal_review_notes` TEXT NULL,
    `legal_review_date` DATE NULL,
    `legal_counsel_opinion` VARCHAR(150) NULL,
    `final_action_type` ENUM('POLICE_EVICTION', 'SHUTTER_SEALING', 'DEMOLITION', 'PENALTY_REGULARIZATION', 'PENDING') NOT NULL DEFAULT 'PENDING',
    `final_action_details` TEXT NULL,
    `action_executed_date` DATE NULL,
    `workflow_step` ENUM(
        'INSPECTION',
        'PHOTO_GPS',
        'OCCUPANT_ID',
        'NOTICE_ISSUED',
        'OFFICER_REVIEW',
        'LEGAL_REVIEW',
        'ACTION_TAKEN'
    ) NOT NULL DEFAULT 'INSPECTION',
    `status` ENUM('ACTIVE_INVESTIGATION', 'NOTICE_SERVED', 'LEGAL_PENDING', 'SEALED_EVICTED', 'REGULARIZED') NOT NULL DEFAULT 'ACTIVE_INVESTIGATION',
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    CONSTRAINT `fk_uo_complex` FOREIGN KEY (`complex_id`) REFERENCES `complexes` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_uo_unit` FOREIGN KEY (`unit_id`) REFERENCES `units_galas` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Electronic Audit Trail for Unauthorized Occupancy (Captures every step)
CREATE TABLE `unauthorized_occupancy_actions` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `case_id` INT UNSIGNED NOT NULL,
    `step_name` VARCHAR(60) NOT NULL,
    `action_title` VARCHAR(150) NOT NULL,
    `action_by_role` VARCHAR(60) NOT NULL,
    `action_by_name` VARCHAR(100) NOT NULL,
    `document_ref` VARCHAR(80) NULL,
    `notes` TEXT NOT NULL,
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT `fk_uoa_case` FOREIGN KEY (`case_id`) REFERENCES `unauthorized_occupancies` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Seed Sample Unauthorized Occupancy Case
INSERT INTO `unauthorized_occupancies` (
    `id`, `case_no`, `ulb_id`, `complex_id`, `unit_id`,
    `occupant_name`, `occupant_phone`, `occupant_aadhaar_last4`, `business_nature`, `encroached_area_sqft`,
    `field_officer_name`, `field_officer_designation`, `inspection_datetime`,
    `latitude`, `longitude`, `geo_address`, `photo_evidence_url`, `video_evidence_url`,
    `field_observations`, `notice_no`, `notice_issued_date`, `statutory_section`, `notice_compliance_deadline`,
    `officer_review_notes`, `officer_review_date`, `reviewed_by_officer`,
    `legal_review_notes`, `legal_review_date`, `legal_counsel_opinion`,
    `final_action_type`, `final_action_details`, `action_executed_date`,
    `workflow_step`, `status`
) VALUES (
    1, 'ENC-CSMC-2026-W01-0089', 1, 1, 25,
    'विकास भिकू गायकवाड (Vikas Gaikwad)', '9822019922', '3910', 'अनधिकृत भंगार व मोबाईल दुरुस्ती दुकान', 220.00,
    'सुनील जाधव (Sunil Jadhav)', 'कनिष्ठ बाजार व अतिक्रमण निरीक्षक (Encroachment Inspector)', '2026-09-10 11:30:00',
    19.87616500, 75.34331400, 'गाळा क्र. G-018, छत्रपती शिवाजी महाराज व्यापारी संकुल, औरंगपुरा, छत्रपती संभाजीनगर',
    'https://images.unsplash.com/photo-1578575437130-527eed3abbec?auto=format&fit=crop&w=600&q=80',
    'https://csmc.gov.in/evidence/videos/enc-2026-0089.mp4',
    'मूळ भाडेकरूचे निधन झाल्यानंतर अनधिकृत त्रयस्थ इसमाने महानगरपालिकेची कोणतीही परवानगी न घेता शटरचे कुलूप तोडून ताबा घेतला आहे.',
    'NOT/CSMC/ENC/2026/0412', '2026-09-12', 'Section 260 & 267, MMC Act 1949', '2026-09-19',
    'संबंधित अनधिकृत इसमास प्रत्यक्ष जागेवरून ७ दिवसांत स्वखर्चाने सामान हटविण्याचे निर्देश देण्यात आले आहेत.', '2026-09-15', 'राजेश मोरे (उपायुक्त - मालमत्ता)',
    'म.म.पा. अधिनियम कलम २६७ व महाराष्ट्र सरकारी जागा (निष्कासन) अधिनियम १९६१ अन्वये थेट निष्कासन व सीलिंग कारवाई विधीमान्य आहे.', '2026-09-18', 'अॅड. सचिन कुलकर्णी (मनपा पॅनल विधी अधिकारी)',
    'SHUTTER_SEALING', 'पोलीस बंदोबस्तात गाळा निष्कासित करून महानगरपालिकेचे अधिकृत सील ठोकण्यात आले व चाव्या तिजोरीत जमा केल्या.', '2026-09-22',
    'ACTION_TAKEN', 'SEALED_EVICTED'
);

INSERT INTO `unauthorized_occupancy_actions` (
    `case_id`, `step_name`, `action_title`, `action_by_role`, `action_by_name`, `document_ref`, `notes`, `created_at`
) VALUES
(1, 'INSPECTION', 'क्षेत्रीय अधिकारी प्रत्यक्ष पाहणी (Site Inspection)', 'FIELD_OFFICER', 'सुनील जाधव (Encroachment Inspector)', 'INSP-2026-089', 'जागेवर प्रत्यक्ष पाहणी करून अनधिकृत भोगवट्याची खात्री करण्यात आली.', '2026-09-10 11:30:00'),
(1, 'PHOTO_GPS', 'जिओ-टॅग छायाचित्र व व्हिडिओ पुरावा संकलन (Photo + GPS)', 'FIELD_OFFICER', 'सुनील जाधव (Inspector)', 'GEO-TAG-19.876-75.343', 'GPS अक्षांश 19.876165 व रेखांश 75.343314 वर ३ छायाचित्रे व व्हिडिओ कॅप्चर केले.', '2026-09-10 11:45:00'),
(1, 'OCCUPANT_ID', 'अनधिकृत भोगवटादार ओळख पडताळणी (Occupant ID)', 'FIELD_OFFICER', 'सुनील जाधव (Inspector)', 'ID-AADHAAR-3910', 'भोगवटादार विकास गायकवाड यांचे आधार व मोबाईल क्रमांक नोंदवून पंचनामा केला.', '2026-09-10 12:15:00'),
(1, 'NOTICE_ISSUED', 'वैधानिक निष्कासन नोटीस बजावणे (Statutory Notice)', 'ESTATE_OFFICER', 'अनीता शिंदे (Revenue Officer)', 'NOT/CSMC/ENC/2026/0412', 'कलम २६० अन्वये ७ दिवसांत गाळा रिक्त करण्याची नोटीस शटरवर चपकवण्यात आली.', '2026-09-12 15:00:00'),
(1, 'OFFICER_REVIEW', 'मालमत्ता अधिकारी स्तरावर सुनावणी व आढावा (Officer Review)', 'DY_COMMISSIONER', 'राजेश मोरे (Dy. Commissioner)', 'REV-MINUTES-2026-14', 'मुदत संपूनही गाळा रिक्त न केल्याने विधी विभागाकडे अंतिम अभिप्रायासाठी पाठवले.', '2026-09-15 16:30:00'),
(1, 'LEGAL_REVIEW', 'महानगरपालिका विधी सल्लागार कायदेशीर तपासणी (Legal Review)', 'LEGAL_OFFICER', 'अॅड. सचिन कुलकर्णी (Legal Advisor)', 'LEGAL-OPINION-2026-88', 'कलम २६७ अन्वये पोलीस बळाचा वापर करून थेट सीलिंग करण्याचा कायदेशीर सल्ला दिला.', '2026-09-18 11:00:00'),
(1, 'ACTION_TAKEN', 'पोलीस पथकासह गाळा सीलिंग व जप्ती पंचनामा (Action Taken)', 'SQUAD_HEAD', 'सुनील जाधव व पोलीस पथक', 'SEAL-PANCHNAMA-2026-44', 'गाळा मोकळा करून मनपाचे लाल लाखेचे सील ठोकले व ताबा महापालिकेकडे घेतला.', '2026-09-22 14:00:00');

-- 3. UPGRADE MAINTENANCE MANAGEMENT (CMMS-STYLE WORKFLOW)
-- 3.1 Configurable SLA Settings Table (Config values rather than hard-coded policy)
DROP TABLE IF EXISTS `maintenance_sla_configs`;
CREATE TABLE `maintenance_sla_configs` (
    `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `priority` ENUM('EMERGENCY', 'HIGH', 'MEDIUM', 'LOW') NOT NULL UNIQUE,
    `priority_name_en` VARCHAR(50) NOT NULL,
    `priority_name_mr` VARCHAR(50) NOT NULL,
    `sla_hours` INT NOT NULL,
    `description` VARCHAR(255) NOT NULL,
    `badge_class` VARCHAR(50) NOT NULL DEFAULT 'bg-secondary',
    `is_active` TINYINT(1) NOT NULL DEFAULT 1,
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `maintenance_sla_configs` (`priority`, `priority_name_en`, `priority_name_mr`, `sla_hours`, `description`, `badge_class`) VALUES
('EMERGENCY', 'Emergency', 'अति-तातडीचे (आणीबाणी)', 4, 'मुख्य स्लॅब पडणे, विद्युत शॉर्ट सर्किट, आग, सांडपाणी पूर (Max 4 Hours)', 'bg-danger'),
('HIGH', 'High', 'उच्च प्राधान्य (तातडीचे)', 24, 'मुख्य पाणी पुरवठा खंडित, ड्रेनेज चोकअप, सार्वजनिक सुरक्षा धोका (Max 24 Hours)', 'bg-warning text-dark'),
('MEDIUM', 'Medium', 'मध्यम प्राधान्य', 72, 'शटर बिघाड, अंतर्गत वायरिंग, सामायिक स्वच्छता दुरुस्ती (Max 72 Hours / 3 Days)', 'bg-info text-dark'),
('LOW', 'Low', 'सर्वसाधारण प्राधान्य', 168, 'रंगकाम, किरकोळ डागडुजी, नामफलक, परिसर सुधारणा (Max 7 Days)', 'bg-secondary');

-- 3.2 Upgrade maintenance_tickets (Complaints) with CMMS fields
ALTER TABLE `maintenance_tickets`
    ADD COLUMN IF NOT EXISTS `complaint_no` VARCHAR(60) NULL AFTER `ticket_number`,
    ADD COLUMN IF NOT EXISTS `tenant_id` INT UNSIGNED NULL AFTER `unit_id`,
    ADD COLUMN IF NOT EXISTS `latitude` DECIMAL(10,8) NULL AFTER `photo_url`,
    ADD COLUMN IF NOT EXISTS `longitude` DECIMAL(11,8) NULL AFTER `latitude`,
    ADD COLUMN IF NOT EXISTS `geo_location_name` VARCHAR(255) NULL AFTER `longitude`,
    ADD COLUMN IF NOT EXISTS `target_resolution_time` DATETIME NULL AFTER `created_at`,
    ADD COLUMN IF NOT EXISTS `sla_hours_allotted` INT NOT NULL DEFAULT 72 AFTER `target_resolution_time`,
    ADD COLUMN IF NOT EXISTS `sla_breach_status` ENUM('WITHIN_SLA', 'NEARING_BREACH', 'BREACHED') NOT NULL DEFAULT 'WITHIN_SLA';

-- 3.3 Upgrade maintenance_work_orders with CMMS costing, approvals, photos & completion certificates
ALTER TABLE `maintenance_work_orders`
    ADD COLUMN IF NOT EXISTS `engineer_name` VARCHAR(100) NULL AFTER `junior_engineer_name`,
    ADD COLUMN IF NOT EXISTS `contractor_name` VARCHAR(150) NULL AFTER `contractor_id`,
    ADD COLUMN IF NOT EXISTS `estimate_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 AFTER `sanctioned_amount`,
    ADD COLUMN IF NOT EXISTS `approval_authority` VARCHAR(100) NOT NULL DEFAULT 'शहर अभियंता (City Engineer)' AFTER `estimate_amount`,
    ADD COLUMN IF NOT EXISTS `approval_sanction_no` VARCHAR(80) NULL AFTER `approval_authority`,
    ADD COLUMN IF NOT EXISTS `approval_date` DATE NULL AFTER `approval_sanction_no`,
    ADD COLUMN IF NOT EXISTS `material_cost` DECIMAL(12,2) NOT NULL DEFAULT 0.00 AFTER `approval_date`,
    ADD COLUMN IF NOT EXISTS `labour_cost` DECIMAL(12,2) NOT NULL DEFAULT 0.00 AFTER `material_cost`,
    ADD COLUMN IF NOT EXISTS `actual_cost` DECIMAL(12,2) NOT NULL DEFAULT 0.00 AFTER `labour_cost`,
    ADD COLUMN IF NOT EXISTS `before_photo_url` VARCHAR(255) NULL AFTER `actual_cost`,
    ADD COLUMN IF NOT EXISTS `after_photo_url` VARCHAR(255) NULL AFTER `before_photo_url`,
    ADD COLUMN IF NOT EXISTS `completion_certificate_no` VARCHAR(80) NULL AFTER `after_photo_url`,
    ADD COLUMN IF NOT EXISTS `completion_certificate_date` DATE NULL AFTER `completion_certificate_no`,
    ADD COLUMN IF NOT EXISTS `certified_by_engineer` VARCHAR(100) NULL AFTER `completion_certificate_date`;

-- Seed Sample CMMS Complaint & Work Order
INSERT INTO `maintenance_tickets` (
    `id`, `ulb_id`, `complex_id`, `building_id`, `unit_id`, `tenant_id`,
    `ticket_number`, `complaint_no`, `complainant_name`, `complainant_mobile`,
    `issue_category`, `description`, `priority`,
    `photo_url`, `latitude`, `longitude`, `geo_location_name`,
    `status`, `created_at`, `target_resolution_time`, `sla_hours_allotted`, `sla_breach_status`, `resolved_at`
) VALUES (
    1, 1, 1, 1, 1, 1,
    'TICK-2026-001', 'CMP-2026-CSMC-0842', 'विजय लक्ष्मण पाटील (Patil Electronics)', '9822112233',
    'DRAINAGE_LEAKAGE', 'गाळ्याच्या समोरील सामायिक ड्रेनेज वाहिनी तुंबल्यामुळे दुकानासमोर दुर्गंधी व सांडपाणी जमा होत आहे.', 'EMERGENCY',
    'https://images.unsplash.com/photo-1584622650111-993a426fbf0a?auto=format&fit=crop&w=600&q=80',
    19.87620000, 75.34350000, 'छत्रपती शिवाजी महाराज संकुल, गाळा क्र. G-001 समोर',
    'RESOLVED', '2026-09-24 09:00:00', '2026-09-24 13:00:00', 4, 'WITHIN_SLA', '2026-09-24 12:30:00'
) ON DUPLICATE KEY UPDATE `complaint_no` = VALUES(`complaint_no`);

INSERT INTO `maintenance_work_orders` (
    `id`, `ticket_id`, `work_order_no`, `contractor_id`, `contractor_name`,
    `junior_engineer_name`, `engineer_name`, `sanctioned_amount`, `estimate_amount`,
    `approval_authority`, `approval_sanction_no`, `approval_date`,
    `material_cost`, `labour_cost`, `actual_cost`,
    `work_start_date`, `target_completion_date`, `actual_completion_date`,
    `before_photo_url`, `after_photo_url`,
    `completion_certificate_no`, `completion_certificate_date`, `certified_by_engineer`,
    `status`
) VALUES (
    1, 1, 'WO-CSMC-2026-PWD-019', 1, 'मे. समर्थ इन्फ्रास्ट्रक्चर व प्लंबिंग सर्व्हिसेस',
    'राहुल कुलकर्णी (Jr. Engineer PWD)', 'राहुल कुलकर्णी (Junior Engineer, PWD Zone-1)', 8500.00, 8500.00,
    'शहर अभियंता (City Engineer)', 'SANCTION/PWD/2026/1042', '2026-09-24',
    4200.00, 3800.00, 8000.00,
    '2026-09-24', '2026-09-24', '2026-09-24',
    'https://images.unsplash.com/photo-1584622650111-993a426fbf0a?auto=format&fit=crop&w=600&q=80',
    'https://images.unsplash.com/photo-1541888946425-d0fbb1861564?auto=format&fit=crop&w=600&q=80',
    'CC-PWD-2026-0045', '2026-09-24', 'राहुल कुलकर्णी (Jr. Engineer)',
    'COMPLETED'
) ON DUPLICATE KEY UPDATE `work_order_no` = VALUES(`work_order_no`);

SET FOREIGN_KEY_CHECKS = 1;
