-- ============================================
-- BAYAZID FARM MANAGEMENT SYSTEM
-- RBAC — Roles & Permissions (Users & Roles module)
-- Run this once, any time after schema.sql
-- Seeds all module.action permissions and grants everything to the Admin role.
-- ============================================

USE technica_bayezid;

INSERT IGNORE INTO permissions (name, description) VALUES ('cows.view', 'View cows');
INSERT IGNORE INTO permissions (name, description) VALUES ('cows.add', 'Add cows');
INSERT IGNORE INTO permissions (name, description) VALUES ('cows.edit', 'Edit cows');
INSERT IGNORE INTO permissions (name, description) VALUES ('cows.delete', 'Delete cows');
INSERT IGNORE INTO permissions (name, description) VALUES ('health.view', 'View health');
INSERT IGNORE INTO permissions (name, description) VALUES ('health.add', 'Add health');
INSERT IGNORE INTO permissions (name, description) VALUES ('health.edit', 'Edit health');
INSERT IGNORE INTO permissions (name, description) VALUES ('health.delete', 'Delete health');
INSERT IGNORE INTO permissions (name, description) VALUES ('vaccines.view', 'View vaccines');
INSERT IGNORE INTO permissions (name, description) VALUES ('vaccines.add', 'Add vaccines');
INSERT IGNORE INTO permissions (name, description) VALUES ('vaccines.edit', 'Edit vaccines');
INSERT IGNORE INTO permissions (name, description) VALUES ('vaccines.delete', 'Delete vaccines');
INSERT IGNORE INTO permissions (name, description) VALUES ('feed.view', 'View feed');
INSERT IGNORE INTO permissions (name, description) VALUES ('feed.add', 'Add feed');
INSERT IGNORE INTO permissions (name, description) VALUES ('feed.edit', 'Edit feed');
INSERT IGNORE INTO permissions (name, description) VALUES ('feed.delete', 'Delete feed');
INSERT IGNORE INTO permissions (name, description) VALUES ('milk.view', 'View milk');
INSERT IGNORE INTO permissions (name, description) VALUES ('milk.add', 'Add milk');
INSERT IGNORE INTO permissions (name, description) VALUES ('milk.edit', 'Edit milk');
INSERT IGNORE INTO permissions (name, description) VALUES ('milk.delete', 'Delete milk');
INSERT IGNORE INTO permissions (name, description) VALUES ('breeding.view', 'View breeding');
INSERT IGNORE INTO permissions (name, description) VALUES ('breeding.add', 'Add breeding');
INSERT IGNORE INTO permissions (name, description) VALUES ('breeding.edit', 'Edit breeding');
INSERT IGNORE INTO permissions (name, description) VALUES ('breeding.delete', 'Delete breeding');
INSERT IGNORE INTO permissions (name, description) VALUES ('weight.view', 'View weight');
INSERT IGNORE INTO permissions (name, description) VALUES ('weight.add', 'Add weight');
INSERT IGNORE INTO permissions (name, description) VALUES ('weight.edit', 'Edit weight');
INSERT IGNORE INTO permissions (name, description) VALUES ('weight.delete', 'Delete weight');
INSERT IGNORE INTO permissions (name, description) VALUES ('expenses.view', 'View expenses');
INSERT IGNORE INTO permissions (name, description) VALUES ('expenses.add', 'Add expenses');
INSERT IGNORE INTO permissions (name, description) VALUES ('expenses.edit', 'Edit expenses');
INSERT IGNORE INTO permissions (name, description) VALUES ('expenses.delete', 'Delete expenses');
INSERT IGNORE INTO permissions (name, description) VALUES ('inventory.view', 'View inventory');
INSERT IGNORE INTO permissions (name, description) VALUES ('inventory.add', 'Add inventory');
INSERT IGNORE INTO permissions (name, description) VALUES ('inventory.edit', 'Edit inventory');
INSERT IGNORE INTO permissions (name, description) VALUES ('inventory.delete', 'Delete inventory');
INSERT IGNORE INTO permissions (name, description) VALUES ('users.view', 'View users');
INSERT IGNORE INTO permissions (name, description) VALUES ('users.add', 'Add users');
INSERT IGNORE INTO permissions (name, description) VALUES ('users.edit', 'Edit users');
INSERT IGNORE INTO permissions (name, description) VALUES ('users.delete', 'Delete users');
INSERT IGNORE INTO permissions (name, description) VALUES ('roles.view', 'View roles');
INSERT IGNORE INTO permissions (name, description) VALUES ('roles.add', 'Add roles');
INSERT IGNORE INTO permissions (name, description) VALUES ('roles.edit', 'Edit roles');
INSERT IGNORE INTO permissions (name, description) VALUES ('roles.delete', 'Delete roles');
INSERT IGNORE INTO permissions (name, description) VALUES ('reports.view', 'View reports');
INSERT IGNORE INTO permissions (name, description) VALUES ('reports.add', 'Add reports');
INSERT IGNORE INTO permissions (name, description) VALUES ('reports.edit', 'Edit reports');
INSERT IGNORE INTO permissions (name, description) VALUES ('reports.delete', 'Delete reports');

-- Grant ALL permissions to the Admin role (role id 1, seeded in schema.sql)
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT 1, id FROM permissions;

-- Sensible defaults for Manager (role id 2): everything except delete
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT 2, id FROM permissions WHERE name NOT LIKE '%.delete' AND name NOT LIKE 'users.%' AND name NOT LIKE 'roles.%';

-- Sensible defaults for Staff (role id 3): view + add only, no admin/user/role management
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT 3, id FROM permissions WHERE (name LIKE '%.view' OR name LIKE '%.add')
  AND name NOT LIKE 'users.%' AND name NOT LIKE 'roles.%' AND name != 'reports.add';
