*/ protected $fillable = [ 'permission_id', 'hook_name', ]; /** * 권한 관계 * * @return BelongsTo */ public function permission(): BelongsTo { return $this->belongsTo(Permission::class); } /** * 특정 훅에 매핑된 권한 목록 조회 * * @param string $hookName 훅 이름 * @return Collection */ public static function getPermissionsForHook(string $hookName): Collection { return Permission::whereHas('hooks', function ($query) use ($hookName) { $query->where('hook_name', $hookName); })->get(); } /** * 특정 훅에 권한이 매핑되어 있는지 확인 * * @param string $hookName 훅 이름 * @return bool */ public static function hasPermissionMapping(string $hookName): bool { return static::where('hook_name', $hookName)->exists(); } }