import '../../../../core/permissions/permission_manager.dart'; import '../../../../core/permissions/permission_resources.dart'; /// 로그인 응답에서 내려오는 단일 권한(리소스 + 액션 목록)을 표현한다. class AuthPermission { const AuthPermission({required this.resource, required this.actions}); /// 서버가 반환한 리소스 식별자 (예: `/stock-transactions`) final String resource; /// 허용된 액션 문자열 목록 (예: `view`, `create`) final List actions; /// [PermissionManager]가 이해할 수 있는 포맷으로 변환한다. Map> toPermissionMap() { final normalized = PermissionResources.normalize(resource); final actionSet = {}; for (final raw in actions) { final matched = PermissionAction.values.where( (action) => action.name == raw.trim().toLowerCase(), ); if (matched.isEmpty) { continue; } actionSet.addAll(matched); } if (actionSet.isEmpty) { return >{}; } return {normalized: actionSet}; } }