-- ============================================================
-- Phase 3 permission additions.
-- Run AFTER database/migrations/003_phase3_procurement.sql
-- Additive only.
-- ============================================================

INSERT INTO permissions (code, module, description) VALUES
('suppliers.manage', 'procurement', 'Manage supplier directory'),
('inspection.create', 'procurement', 'Record goods inspections'),
('inspection.approve', 'procurement', 'Finalize inspection results');

INSERT INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'super_admin' AND p.code IN ('suppliers.manage','inspection.create','inspection.approve')
AND NOT EXISTS (SELECT 1 FROM role_permissions rp WHERE rp.role_id = r.id AND rp.permission_id = p.id);

INSERT INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'institution_admin' AND p.code IN ('suppliers.manage')
AND NOT EXISTS (SELECT 1 FROM role_permissions rp WHERE rp.role_id = r.id AND rp.permission_id = p.id);

INSERT INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'procurement_officer' AND p.code IN ('suppliers.manage')
AND NOT EXISTS (SELECT 1 FROM role_permissions rp WHERE rp.role_id = r.id AND rp.permission_id = p.id);

INSERT INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'inspection_officer' AND p.code IN ('inspection.create','inspection.approve')
AND NOT EXISTS (SELECT 1 FROM role_permissions rp WHERE rp.role_id = r.id AND rp.permission_id = p.id);

INSERT INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'asset_admin' AND p.code IN ('inspection.create','inspection.approve')
AND NOT EXISTS (SELECT 1 FROM role_permissions rp WHERE rp.role_id = r.id AND rp.permission_id = p.id);
