-- ============================================
-- 폐기 반출 관리 권한 추가
-- 작성일: 2024-12-28
-- ============================================

-- 1. permissions 테이블에 폐기 반출 관련 권한 추가
INSERT IGNORE INTO `permissions` (`permission_key`, `description`) VALUES
('inventory.disposal_removal.view', '폐기 반출 조회 - 반출 요청 목록 및 상세 조회'),
('inventory.disposal_removal.create', '폐기 반출 생성 - 새로운 반출 요청 작성'),
('inventory.disposal_removal.approve', '폐기 반출 승인/반려 - 관리자 승인 및 반려 처리');

-- 2. 권한 ID 확인 (자동 증가 값 기준으로 가장 최근 3개)
SET @view_perm_id = (SELECT id FROM permissions WHERE permission_key = 'inventory.disposal_removal.view');
SET @create_perm_id = (SELECT id FROM permissions WHERE permission_key = 'inventory.disposal_removal.create');
SET @approve_perm_id = (SELECT id FROM permissions WHERE permission_key = 'inventory.disposal_removal.approve');

-- 3. 역할별 권한 할당

-- 3-1. owner (점주) - 모든 권한 자동 부여 (코드에서 처리되므로 생략 가능)

-- 3-2. branch_manager (점장) - 조회 및 생성만 가능
INSERT IGNORE INTO `role_permissions` (`role`, `permission_id`) VALUES 
('branch_manager', @view_perm_id),
('branch_manager', @create_perm_id);

-- 3-3. store_manager (스토어매니저) - 조회 및 생성만 가능
INSERT IGNORE INTO `role_permissions` (`role`, `permission_id`) VALUES 
('store_manager', @view_perm_id),
('store_manager', @create_perm_id);

-- 3-4. part_timer (파트타이머) - 조회 및 생성만 가능
INSERT IGNORE INTO `role_permissions` (`role`, `permission_id`) VALUES 
('part_timer', @view_perm_id),
('part_timer', @create_perm_id);

-- 3-5. cashier (캐셔) - 조회 및 생성만 가능
INSERT IGNORE INTO `role_permissions` (`role`, `permission_id`) VALUES 
('cashier', @view_perm_id),
('cashier', @create_perm_id);

-- 확인 쿼리
SELECT 
    rp.role,
    p.permission_key,
    p.description
FROM role_permissions rp
JOIN permissions p ON rp.permission_id = p.id
WHERE p.permission_key LIKE 'inventory.disposal_removal.%'
ORDER BY rp.role, p.permission_key;
