import { Controller, Get, Post, Put, Delete, Param, Body, HttpCode, HttpStatus } from '@nestjs/common'; import { ApiTags, ApiOperation, ApiResponse, ApiParam } from '@nestjs/swagger'; import { TemplateService } from './template.service'; import { CreateTemplateDto, UpdateTemplateDto, TemplateResponseDto } from './dto'; import { Template } from './entities/template.entity'; import { RequireRole } from '../auth/decorators/auth.decorators'; import { ApiKeyRole } from '../auth/entities/api-key.entity'; @ApiTags('templates') @Controller('sessions/:sessionId/templates') export class TemplateController { constructor(private readonly templateService: TemplateService) {} @Post() @RequireRole(ApiKeyRole.OPERATOR) @ApiOperation({ summary: 'Create a message template for the session' }) @ApiParam({ name: 'sessionId', description: 'Session ID' }) @ApiResponse({ status: 201, description: 'Template created', type: TemplateResponseDto }) async create(@Param('sessionId') sessionId: string, @Body() dto: CreateTemplateDto): Promise