import { Controller, Get, Post, Body, Query } from '@nestjs/common';
import { ApiTags, ApiOperation, ApiResponse, ApiQuery } from '@nestjs/swagger';
import { DiagnosisCategoryListService } from './diagnosis-category-list.service';
import { CreateDiagnosisCategoryListDto } from './dto/create-diagnosis-category-list.dto';
import { DiagnosisCategoryListGetSuccessResp, diagreportGetSuccess } from './entities/diagnosis-category-list.entity';

@ApiTags('Diagnosis Category List')
@Controller('diagnosis-category-list')
export class DiagnosisCategoryListController {
  constructor(private readonly diagnosisCategoryListService: DiagnosisCategoryListService) { }

  @Post()
  @ApiOperation({ summary: 'Create a new diagnosis category' })
  @ApiResponse({ status: 201, description: 'Diagnosis category created successfully.', type: diagreportGetSuccess })
  @ApiResponse({ status: 400, description: 'Bad Request' })
  create(@Body() createDiagnosisCategoryListDto: CreateDiagnosisCategoryListDto) {
    return this.diagnosisCategoryListService.create(createDiagnosisCategoryListDto);
  }

  @Get()
  @ApiOperation({ summary: 'Get all diagnosis categories' })
  @ApiQuery({ name: 'search', required: true, type: String, description: 'text for search' })
  @ApiResponse({ status: 200, description: 'List of diagnosis categories', type: DiagnosisCategoryListGetSuccessResp })
  findAll(@Query('search') search: string) {
    return this.diagnosisCategoryListService.findAll(search);
  }
}
