-- Gujarat geographic hierarchy (Country → State → District → Taluka) for VPandit `geographic_nodes`.
-- Idempotent: safe to re-run (keyed on unique `code`). Generated from the district/taluka list.
-- Levels used: COUNTRY, STATE, DISTRICT, TALUKA. (Add 'TALUKA' to the master's level dropdown in config/masters.php.)

CREATE TABLE IF NOT EXISTS `geographic_nodes` (
  `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `code` VARCHAR(255) DEFAULT NULL,
  `name` VARCHAR(255) DEFAULT NULL,
  `name_dev` VARCHAR(255) DEFAULT NULL,
  `level` VARCHAR(255) DEFAULT NULL,
  `parent_code` VARCHAR(255) DEFAULT NULL,
  `gst_state_code` VARCHAR(255) DEFAULT NULL,
  `pincode` VARCHAR(255) DEFAULT NULL,
  `latitude` DECIMAL(12,2) DEFAULT NULL,
  `longitude` DECIMAL(12,2) DEFAULT NULL,
  `sort_order` INT DEFAULT NULL,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME DEFAULT NULL,
  `deleted_at` DATETIME DEFAULT NULL,
  UNIQUE KEY `uniq_code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `geographic_nodes` (`code`,`name`,`level`,`parent_code`,`gst_state_code`,`sort_order`,`is_active`) VALUES
('IN','India','COUNTRY','',NULL,1,1),
('GJ','Gujarat','STATE','IN','24',1,1),
('GJ-AHM','Ahmedabad','DISTRICT','GJ','24',1,1),
('GJ-AHM-01','Ahmedabad City','TALUKA','GJ-AHM','24',1,1),
('GJ-AHM-02','Daskroi','TALUKA','GJ-AHM','24',2,1),
('GJ-AHM-03','Sanand','TALUKA','GJ-AHM','24',3,1),
('GJ-AHM-04','Dholka','TALUKA','GJ-AHM','24',4,1),
('GJ-AHM-05','Bavla','TALUKA','GJ-AHM','24',5,1),
('GJ-AHM-06','Mandal','TALUKA','GJ-AHM','24',6,1),
('GJ-AHM-07','Detroj-Rampura','TALUKA','GJ-AHM','24',7,1),
('GJ-AMR','Amreli','DISTRICT','GJ','24',2,1),
('GJ-AMR-01','Amreli','TALUKA','GJ-AMR','24',1,1),
('GJ-AMR-02','Lathi','TALUKA','GJ-AMR','24',2,1),
('GJ-AMR-03','Savarkundla','TALUKA','GJ-AMR','24',3,1),
('GJ-AMR-04','Rajula','TALUKA','GJ-AMR','24',4,1),
('GJ-AMR-05','Jafrabad','TALUKA','GJ-AMR','24',5,1),
('GJ-AMR-06','Khambha','TALUKA','GJ-AMR','24',6,1),
('GJ-AMR-07','Dhari','TALUKA','GJ-AMR','24',7,1),
('GJ-AMR-08','Bagasara','TALUKA','GJ-AMR','24',8,1),
('GJ-ANA','Anand','DISTRICT','GJ','24',3,1),
('GJ-ANA-01','Anand','TALUKA','GJ-ANA','24',1,1),
('GJ-ANA-02','Borsad','TALUKA','GJ-ANA','24',2,1),
('GJ-ANA-03','Petlad','TALUKA','GJ-ANA','24',3,1),
('GJ-ANA-04','Sojitra','TALUKA','GJ-ANA','24',4,1),
('GJ-ANA-05','Tarapur','TALUKA','GJ-ANA','24',5,1),
('GJ-ANA-06','Khambhat','TALUKA','GJ-ANA','24',6,1),
('GJ-ANA-07','Umreth','TALUKA','GJ-ANA','24',7,1),
('GJ-ARV','Aravalli','DISTRICT','GJ','24',4,1),
('GJ-ARV-01','Modasa','TALUKA','GJ-ARV','24',1,1),
('GJ-ARV-02','Bayad','TALUKA','GJ-ARV','24',2,1),
('GJ-ARV-03','Dhansura','TALUKA','GJ-ARV','24',3,1),
('GJ-ARV-04','Malpur','TALUKA','GJ-ARV','24',4,1),
('GJ-ARV-05','Meghraj','TALUKA','GJ-ARV','24',5,1),
('GJ-BNK','Banaskantha','DISTRICT','GJ','24',5,1),
('GJ-BNK-01','Palanpur','TALUKA','GJ-BNK','24',1,1),
('GJ-BNK-02','Deesa','TALUKA','GJ-BNK','24',2,1),
('GJ-BNK-03','Dhanera','TALUKA','GJ-BNK','24',3,1),
('GJ-BNK-04','Danta','TALUKA','GJ-BNK','24',4,1),
('GJ-BNK-05','Vadgam','TALUKA','GJ-BNK','24',5,1),
('GJ-BNK-06','Tharad','TALUKA','GJ-BNK','24',6,1),
('GJ-BNK-07','Vav','TALUKA','GJ-BNK','24',7,1),
('GJ-BNK-08','Bhabhar','TALUKA','GJ-BNK','24',8,1),
('GJ-BNK-09','Kankrej','TALUKA','GJ-BNK','24',9,1),
('GJ-BRC','Bharuch','DISTRICT','GJ','24',6,1),
('GJ-BRC-01','Bharuch','TALUKA','GJ-BRC','24',1,1),
('GJ-BRC-02','Ankleshwar','TALUKA','GJ-BRC','24',2,1),
('GJ-BRC-03','Jambusar','TALUKA','GJ-BRC','24',3,1),
('GJ-BRC-04','Amod','TALUKA','GJ-BRC','24',4,1),
('GJ-BRC-05','Vagra','TALUKA','GJ-BRC','24',5,1),
('GJ-BRC-06','Hansot','TALUKA','GJ-BRC','24',6,1),
('GJ-BHV','Bhavnagar','DISTRICT','GJ','24',7,1),
('GJ-BHV-01','Bhavnagar','TALUKA','GJ-BHV','24',1,1),
('GJ-BHV-02','Talaja','TALUKA','GJ-BHV','24',2,1),
('GJ-BHV-03','Gariadhar','TALUKA','GJ-BHV','24',3,1),
('GJ-BHV-04','Mahuva','TALUKA','GJ-BHV','24',4,1),
('GJ-BHV-05','Palitana','TALUKA','GJ-BHV','24',5,1),
('GJ-BHV-06','Sihor','TALUKA','GJ-BHV','24',6,1),
('GJ-BHV-07','Vallabhipur','TALUKA','GJ-BHV','24',7,1),
('GJ-BOT','Botad','DISTRICT','GJ','24',8,1),
('GJ-BOT-01','Botad','TALUKA','GJ-BOT','24',1,1),
('GJ-BOT-02','Barwala','TALUKA','GJ-BOT','24',2,1),
('GJ-BOT-03','Ranpur','TALUKA','GJ-BOT','24',3,1),
('GJ-BOT-04','Gadhada','TALUKA','GJ-BOT','24',4,1),
('GJ-CHU','Chhota Udepur','DISTRICT','GJ','24',9,1),
('GJ-CHU-01','Chhota Udepur','TALUKA','GJ-CHU','24',1,1),
('GJ-CHU-02','Bodeli','TALUKA','GJ-CHU','24',2,1),
('GJ-CHU-03','Kawant','TALUKA','GJ-CHU','24',3,1),
('GJ-CHU-04','Naswadi','TALUKA','GJ-CHU','24',4,1),
('GJ-CHU-05','Sankheda','TALUKA','GJ-CHU','24',5,1),
('GJ-DAH','Dahod','DISTRICT','GJ','24',10,1),
('GJ-DAH-01','Dahod','TALUKA','GJ-DAH','24',1,1),
('GJ-DAH-02','Garbada','TALUKA','GJ-DAH','24',2,1),
('GJ-DAH-03','Dhanpur','TALUKA','GJ-DAH','24',3,1),
('GJ-DAH-04','Limkheda','TALUKA','GJ-DAH','24',4,1),
('GJ-DAH-05','Fatepura','TALUKA','GJ-DAH','24',5,1),
('GJ-DAH-06','Jhalod','TALUKA','GJ-DAH','24',6,1),
('GJ-DAH-07','Devgad Baria','TALUKA','GJ-DAH','24',7,1),
('GJ-DNG','Dang','DISTRICT','GJ','24',11,1),
('GJ-DNG-01','Ahwa','TALUKA','GJ-DNG','24',1,1),
('GJ-DDW','Devbhoomi Dwarka','DISTRICT','GJ','24',12,1),
('GJ-DDW-01','Khambhalia','TALUKA','GJ-DDW','24',1,1),
('GJ-DDW-02','Kalyanpur','TALUKA','GJ-DDW','24',2,1),
('GJ-DDW-03','Bhanvad','TALUKA','GJ-DDW','24',3,1),
('GJ-DDW-04','Dwarka','TALUKA','GJ-DDW','24',4,1),
('GJ-GNR','Gandhinagar','DISTRICT','GJ','24',13,1),
('GJ-GNR-01','Gandhinagar','TALUKA','GJ-GNR','24',1,1),
('GJ-GNR-02','Kalol','TALUKA','GJ-GNR','24',2,1),
('GJ-GNR-03','Mansa','TALUKA','GJ-GNR','24',3,1),
('GJ-GNR-04','Dehgam','TALUKA','GJ-GNR','24',4,1),
('GJ-GIR','Gir Somnath','DISTRICT','GJ','24',14,1),
('GJ-GIR-01','Veraval','TALUKA','GJ-GIR','24',1,1),
('GJ-GIR-02','Kodinar','TALUKA','GJ-GIR','24',2,1),
('GJ-GIR-03','Talala','TALUKA','GJ-GIR','24',3,1),
('GJ-GIR-04','Sutrapada','TALUKA','GJ-GIR','24',4,1),
('GJ-GIR-05','Una','TALUKA','GJ-GIR','24',5,1),
('GJ-JAM','Jamnagar','DISTRICT','GJ','24',15,1),
('GJ-JAM-01','Jamnagar','TALUKA','GJ-JAM','24',1,1),
('GJ-JAM-02','Lalpur','TALUKA','GJ-JAM','24',2,1),
('GJ-JAM-03','Kalavad','TALUKA','GJ-JAM','24',3,1),
('GJ-JAM-04','Dhrol','TALUKA','GJ-JAM','24',4,1),
('GJ-JAM-05','Jodiya','TALUKA','GJ-JAM','24',5,1),
('GJ-JUN','Junagadh','DISTRICT','GJ','24',16,1),
('GJ-JUN-01','Junagadh','TALUKA','GJ-JUN','24',1,1),
('GJ-JUN-02','Manavadar','TALUKA','GJ-JUN','24',2,1),
('GJ-JUN-03','Vanthali','TALUKA','GJ-JUN','24',3,1),
('GJ-JUN-04','Keshod','TALUKA','GJ-JUN','24',4,1),
('GJ-JUN-05','Malia','TALUKA','GJ-JUN','24',5,1),
('GJ-JUN-06','Mangrol','TALUKA','GJ-JUN','24',6,1),
('GJ-KHE','Kheda','DISTRICT','GJ','24',17,1),
('GJ-KHE-01','Nadiad','TALUKA','GJ-KHE','24',1,1),
('GJ-KHE-02','Kapadvanj','TALUKA','GJ-KHE','24',2,1),
('GJ-KHE-03','Mehmedabad','TALUKA','GJ-KHE','24',3,1),
('GJ-KHE-04','Matar','TALUKA','GJ-KHE','24',4,1),
('GJ-KHE-05','Thasra','TALUKA','GJ-KHE','24',5,1),
('GJ-KHE-06','Galteshwar','TALUKA','GJ-KHE','24',6,1),
('GJ-MAH','Mahisagar','DISTRICT','GJ','24',18,1),
('GJ-MAH-01','Lunawada','TALUKA','GJ-MAH','24',1,1),
('GJ-MAH-02','Kadana','TALUKA','GJ-MAH','24',2,1),
('GJ-MAH-03','Santrampur','TALUKA','GJ-MAH','24',3,1),
('GJ-MAH-04','Balasinor','TALUKA','GJ-MAH','24',4,1),
('GJ-MAH-05','Virpur','TALUKA','GJ-MAH','24',5,1),
('GJ-MSA','Mehsana','DISTRICT','GJ','24',19,1),
('GJ-MSA-01','Mehsana','TALUKA','GJ-MSA','24',1,1),
('GJ-MSA-02','Kadi','TALUKA','GJ-MSA','24',2,1),
('GJ-MSA-03','Visnagar','TALUKA','GJ-MSA','24',3,1),
('GJ-MSA-04','Unjha','TALUKA','GJ-MSA','24',4,1),
('GJ-MSA-05','Satlasana','TALUKA','GJ-MSA','24',5,1),
('GJ-MSA-06','Vadnagar','TALUKA','GJ-MSA','24',6,1),
('GJ-MSA-07','Becharaji','TALUKA','GJ-MSA','24',7,1),
('GJ-MOR','Morbi','DISTRICT','GJ','24',20,1),
('GJ-MOR-01','Morbi','TALUKA','GJ-MOR','24',1,1),
('GJ-MOR-02','Maliya','TALUKA','GJ-MOR','24',2,1),
('GJ-MOR-03','Halvad','TALUKA','GJ-MOR','24',3,1),
('GJ-MOR-04','Tankara','TALUKA','GJ-MOR','24',4,1),
('GJ-MOR-05','Wankaner','TALUKA','GJ-MOR','24',5,1),
('GJ-NAR','Narmada','DISTRICT','GJ','24',21,1),
('GJ-NAR-01','Rajpipla','TALUKA','GJ-NAR','24',1,1),
('GJ-NAR-02','Dediapada','TALUKA','GJ-NAR','24',2,1),
('GJ-NAR-03','Sagbara','TALUKA','GJ-NAR','24',3,1),
('GJ-NAR-04','Nandod','TALUKA','GJ-NAR','24',4,1),
('GJ-NAV','Navsari','DISTRICT','GJ','24',22,1),
('GJ-NAV-01','Navsari','TALUKA','GJ-NAV','24',1,1),
('GJ-NAV-02','Gandevi','TALUKA','GJ-NAV','24',2,1),
('GJ-NAV-03','Jalalpore','TALUKA','GJ-NAV','24',3,1),
('GJ-NAV-04','Chikhli','TALUKA','GJ-NAV','24',4,1),
('GJ-PNM','Panchmahal','DISTRICT','GJ','24',23,1),
('GJ-PNM-01','Godhra','TALUKA','GJ-PNM','24',1,1),
('GJ-PNM-02','Kalol','TALUKA','GJ-PNM','24',2,1),
('GJ-PNM-03','Halol','TALUKA','GJ-PNM','24',3,1),
('GJ-PNM-04','Ghoghamba','TALUKA','GJ-PNM','24',4,1),
('GJ-PNM-05','Jambughoda','TALUKA','GJ-PNM','24',5,1),
('GJ-PNM-06','Morva (Hadaf)','TALUKA','GJ-PNM','24',6,1),
('GJ-PAT','Patan','DISTRICT','GJ','24',24,1),
('GJ-PAT-01','Patan','TALUKA','GJ-PAT','24',1,1),
('GJ-PAT-02','Sidhpur','TALUKA','GJ-PAT','24',2,1),
('GJ-PAT-03','Radhanpur','TALUKA','GJ-PAT','24',3,1),
('GJ-PAT-04','Sami','TALUKA','GJ-PAT','24',4,1),
('GJ-PAT-05','Harij','TALUKA','GJ-PAT','24',5,1),
('GJ-PAT-06','Chanasma','TALUKA','GJ-PAT','24',6,1),
('GJ-POR','Porbandar','DISTRICT','GJ','24',25,1),
('GJ-POR-01','Porbandar','TALUKA','GJ-POR','24',1,1),
('GJ-POR-02','Ranavav','TALUKA','GJ-POR','24',2,1),
('GJ-POR-03','Kutiyana','TALUKA','GJ-POR','24',3,1),
('GJ-RAJ','Rajkot','DISTRICT','GJ','24',26,1),
('GJ-RAJ-01','Rajkot','TALUKA','GJ-RAJ','24',1,1),
('GJ-RAJ-02','Jasdan','TALUKA','GJ-RAJ','24',2,1),
('GJ-RAJ-03','Gondal','TALUKA','GJ-RAJ','24',3,1),
('GJ-RAJ-04','Jetpur','TALUKA','GJ-RAJ','24',4,1),
('GJ-RAJ-05','Paddhari','TALUKA','GJ-RAJ','24',5,1),
('GJ-RAJ-06','Kotda Sangani','TALUKA','GJ-RAJ','24',6,1),
('GJ-RAJ-07','Lodhika','TALUKA','GJ-RAJ','24',7,1),
('GJ-SBK','Sabarkantha','DISTRICT','GJ','24',27,1),
('GJ-SBK-01','Himmatnagar','TALUKA','GJ-SBK','24',1,1),
('GJ-SBK-02','Idar','TALUKA','GJ-SBK','24',2,1),
('GJ-SBK-03','Prantij','TALUKA','GJ-SBK','24',3,1),
('GJ-SBK-04','Talod','TALUKA','GJ-SBK','24',4,1),
('GJ-SBK-05','Vadali','TALUKA','GJ-SBK','24',5,1),
('GJ-SBK-06','Khedbrahma','TALUKA','GJ-SBK','24',6,1),
('GJ-SBK-07','Vijaynagar','TALUKA','GJ-SBK','24',7,1),
('GJ-SRT','Surat','DISTRICT','GJ','24',28,1),
('GJ-SRT-01','Surat City','TALUKA','GJ-SRT','24',1,1),
('GJ-SRT-02','Kamrej','TALUKA','GJ-SRT','24',2,1),
('GJ-SRT-03','Olpad','TALUKA','GJ-SRT','24',3,1),
('GJ-SRT-04','Mandvi','TALUKA','GJ-SRT','24',4,1),
('GJ-SRT-05','Bardoli','TALUKA','GJ-SRT','24',5,1),
('GJ-SRT-06','Palsana','TALUKA','GJ-SRT','24',6,1),
('GJ-SRT-07','Mangrol','TALUKA','GJ-SRT','24',7,1),
('GJ-SRT-08','Umarpada','TALUKA','GJ-SRT','24',8,1),
('GJ-SUR','Surendranagar','DISTRICT','GJ','24',29,1),
('GJ-SUR-01','Surendranagar','TALUKA','GJ-SUR','24',1,1),
('GJ-SUR-02','Wadhwan','TALUKA','GJ-SUR','24',2,1),
('GJ-SUR-03','Limbdi','TALUKA','GJ-SUR','24',3,1),
('GJ-SUR-04','Chotila','TALUKA','GJ-SUR','24',4,1),
('GJ-SUR-05','Sayla','TALUKA','GJ-SUR','24',5,1),
('GJ-SUR-06','Dhrangadhra','TALUKA','GJ-SUR','24',6,1),
('GJ-SUR-07','Muli','TALUKA','GJ-SUR','24',7,1),
('GJ-TAP','Tapi','DISTRICT','GJ','24',30,1),
('GJ-TAP-01','Vyara','TALUKA','GJ-TAP','24',1,1),
('GJ-TAP-02','Songadh','TALUKA','GJ-TAP','24',2,1),
('GJ-TAP-03','Nizar','TALUKA','GJ-TAP','24',3,1),
('GJ-TAP-04','Uchchhal','TALUKA','GJ-TAP','24',4,1),
('GJ-TAP-05','Valod','TALUKA','GJ-TAP','24',5,1),
('GJ-VAD','Vadodara','DISTRICT','GJ','24',31,1),
('GJ-VAD-01','Vadodara','TALUKA','GJ-VAD','24',1,1),
('GJ-VAD-02','Savli','TALUKA','GJ-VAD','24',2,1),
('GJ-VAD-03','Padra','TALUKA','GJ-VAD','24',3,1),
('GJ-VAD-04','Karjan','TALUKA','GJ-VAD','24',4,1),
('GJ-VAD-05','Dabhoi','TALUKA','GJ-VAD','24',5,1),
('GJ-VAD-06','Vaghodia','TALUKA','GJ-VAD','24',6,1),
('GJ-VAD-07','Shinor','TALUKA','GJ-VAD','24',7,1),
('GJ-VLS','Valsad','DISTRICT','GJ','24',32,1),
('GJ-VLS-01','Valsad','TALUKA','GJ-VLS','24',1,1),
('GJ-VLS-02','Pardi','TALUKA','GJ-VLS','24',2,1),
('GJ-VLS-03','Umbergaon','TALUKA','GJ-VLS','24',3,1),
('GJ-VLS-04','Kaprada','TALUKA','GJ-VLS','24',4,1),
('GJ-VLS-05','Dharampur','TALUKA','GJ-VLS','24',5,1)

ON DUPLICATE KEY UPDATE
  `name`=VALUES(`name`),
  `level`=VALUES(`level`),
  `parent_code`=VALUES(`parent_code`),
  `gst_state_code`=VALUES(`gst_state_code`),
  `sort_order`=VALUES(`sort_order`),
  `is_active`=VALUES(`is_active`),
  `updated_at`=NOW();
