> */ public function getRoles(): array { return []; } /** * 모듈 권한 목록 반환 (계층형 구조, 다국어 지원) * * @return array */ public function getPermissions(): array { return [ 'name' => [ 'ko' => 'Hello 모듈', 'en' => 'Hello Module', ], 'description' => [ 'ko' => 'Hello 모듈 권한', 'en' => 'Hello module permissions', ], 'categories' => [ [ 'identifier' => 'memos', 'resource_route_key' => 'memo', 'owner_key' => null, 'name' => [ 'ko' => '메모 관리', 'en' => 'Memo Management', ], 'description' => [ 'ko' => '메모 관리 권한', 'en' => 'Memo management permissions', ], 'permissions' => [ [ 'action' => 'read', 'name' => [ 'ko' => '메모 조회', 'en' => 'View Memos', ], 'description' => [ 'ko' => '메모 목록 및 상세 조회', 'en' => 'View memo list and details', ], 'type' => 'admin', 'roles' => ['admin', 'manager'], ], [ 'action' => 'create', 'name' => [ 'ko' => '메모 생성', 'en' => 'Create Memo', ], 'description' => [ 'ko' => '새 메모 생성', 'en' => 'Create new memo', ], 'type' => 'admin', 'roles' => ['admin', 'manager'], ], [ 'action' => 'update', 'name' => [ 'ko' => '메모 수정', 'en' => 'Update Memo', ], 'description' => [ 'ko' => '메모 내용 수정', 'en' => 'Update memo content', ], 'type' => 'admin', 'roles' => ['admin', 'manager'], ], [ 'action' => 'delete', 'name' => [ 'ko' => '메모 삭제', 'en' => 'Delete Memo', ], 'description' => [ 'ko' => '메모 삭제', 'en' => 'Delete memo', ], 'type' => 'admin', 'roles' => ['admin'], ], ], ], ], ]; } /** * 모듈 설치 시 실행할 시더 목록 반환 * * @return array> */ public function getSeeders(): array { return [ MemoSeeder::class, ]; } /** * 훅 리스너 목록 반환 * * @return array */ public function getHookListeners(): array { return [ LogMemoCreatedListener::class, ]; } /** * 관리자 메뉴 정의 * * 주의: manifest `hidden: true` 이므로 실제 UI 에 노출되지 않을 수 있으나 * 메뉴 등록 자체는 학습 목적의 샘플로 제공합니다. * * @return array> */ public function getAdminMenus(): array { return [ [ 'name' => [ 'ko' => 'Hello 메모', 'en' => 'Hello Memos', ], 'slug' => 'gnuboard7-hello_module', 'url' => '/admin/memos', 'icon' => 'fas fa-sticky-note', 'order' => 99, 'permission' => 'gnuboard7-hello_module.memos.read', ], ]; } }