-- ============================================================================
-- PHASE 4 — Seed: permissions, role grants, default part categories
-- Safe to re-run.
-- ============================================================================

USE `garage_management`;

INSERT INTO `permissions` (`module`, `slug`, `name`) VALUES
  ('inventory', 'inventory.view', 'View Inventory & Stock'),
  ('inventory', 'inventory.manage', 'Manage Parts & Stock Adjustments'),
  ('suppliers', 'suppliers.view', 'View Suppliers'),
  ('suppliers', 'suppliers.manage', 'Manage Suppliers'),
  ('purchases', 'purchases.view', 'View Purchases'),
  ('purchases', 'purchases.manage', 'Create/Receive Purchases')
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`);

INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT (SELECT id FROM roles WHERE name = 'Admin'), p.id FROM permissions p
WHERE p.module IN ('inventory','suppliers','purchases')
ON DUPLICATE KEY UPDATE `role_id` = `role_id`;

INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT (SELECT id FROM roles WHERE name = 'Manager'), p.id FROM permissions p
WHERE p.module IN ('inventory','suppliers','purchases')
ON DUPLICATE KEY UPDATE `role_id` = `role_id`;

INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT (SELECT id FROM roles WHERE name = 'Storekeeper'), p.id FROM permissions p
WHERE p.module IN ('inventory','suppliers','purchases')
ON DUPLICATE KEY UPDATE `role_id` = `role_id`;

INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT (SELECT id FROM roles WHERE name = 'Service Advisor'), p.id FROM permissions p
WHERE p.slug IN ('inventory.view')
ON DUPLICATE KEY UPDATE `role_id` = `role_id`;

INSERT INTO `role_permissions` (`role_id`, `permission_id`)
SELECT (SELECT id FROM roles WHERE name = 'Mechanic'), p.id FROM permissions p
WHERE p.slug IN ('inventory.view')
ON DUPLICATE KEY UPDATE `role_id` = `role_id`;

-- ---------------------------------------------------------------------------
-- Default part categories
-- ---------------------------------------------------------------------------
INSERT INTO `part_categories` (`name`, `description`) VALUES
  ('Engine Oil & Fluids', 'Engine oil, coolant, brake fluid, transmission fluid'),
  ('Filters', 'Oil, air, cabin, and fuel filters'),
  ('Brakes', 'Brake pads, discs, calipers, brake lines'),
  ('Tires & Wheels', 'Tires, rims, valves, balancing weights'),
  ('Battery & Electrical', 'Batteries, alternators, starters, wiring, bulbs'),
  ('Engine Parts', 'Belts, hoses, spark plugs, gaskets'),
  ('Suspension & Steering', 'Shocks, struts, control arms, tie rods'),
  ('Body & Exterior', 'Bumpers, panels, mirrors, lights, glass'),
  ('AC & Cooling', 'AC compressors, radiators, condensers'),
  ('Other', 'Miscellaneous parts and consumables')
ON DUPLICATE KEY UPDATE `description` = VALUES(`description`);

-- ---------------------------------------------------------------------------
-- Demo supplier
-- ---------------------------------------------------------------------------
INSERT INTO `suppliers` (`name`, `contact_person`, `phone`, `email`, `address`, `payment_terms`, `is_active`) VALUES
  ('Addis Auto Parts PLC', 'Yohannes Girma', '+251 91 234 5678', 'sales@addisautoparts.et', 'Merkato, Addis Ababa', 'Net 30', 1),
  ('Horizon Spare Parts Import', 'Sara Alemayehu', '+251 92 345 6789', 'info@horizonspares.et', 'Bole, Addis Ababa', 'Net 15', 1)
ON DUPLICATE KEY UPDATE `contact_person` = VALUES(`contact_person`);
