import { SetMetadata } from '@nestjs/common';

/**
 * Roles Decorator
 *
 * Specifies which roles are allowed to access a route.
 * Must be used with both JwtAuthGuard and RolesGuard.
 *
 * Available roles:
 * - 'admin': Full system access
 * - 'manager': Manage bookings and users within organization
 * - 'user': Create and view bookings
 * - 'viewer': Read-only access
 *
 * Usage:
 * @UseGuards(JwtAuthGuard, RolesGuard)
 * @Roles('admin', 'manager')
 * @Delete('bookings/:id')
 * deleteBooking(@Param('id') id: string) {
 *   return this.bookingService.delete(id);
 * }
 */
export const Roles = (...roles: string[]) => SetMetadata('roles', roles);
