import { Body, Controller, Get, Post, Query, Req, UseGuards, } from '@nestjs/common'; import type { Request } from 'express'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; import { CreateSimulationDto } from './dto/create-simulation.dto'; import { ListSimulationTemplateOptionsQueryDto } from './dto/list-simulation-templates-query.dto'; import { SimulationsService } from './simulations.service'; type AuthenticatedRequest = Request & { user: { stylistId: string | number; }; }; @UseGuards(JwtAuthGuard) @Controller('simulations') export class SimulationsController { constructor(private readonly simulationsService: SimulationsService) {} @Get('template-options') listTemplateOptions( @Req() request: AuthenticatedRequest, @Query() query: ListSimulationTemplateOptionsQueryDto, ) { return this.simulationsService.listTemplateOptions( BigInt(request.user.stylistId), query, ); } @Post() create(@Body() body: CreateSimulationDto) { return this.simulationsService.create(body); } }