import { ApiTags, ApiOperation, ApiResponse } from "@nestjs/swagger";
import { SearchComplaintsDto } from "./dto/search_complaints.dto";
import { ChiefComplaintsList } from "./entities/chief_complaints_list.entity";
import { Body, Controller, Get, Post, Query } from "@nestjs/common";
import { ChiefComplaintsListService } from "./chief_complaints_list.service";

@ApiTags("Chief Complaints")
@Controller("chief-complaints")
export class ChiefComplaintsListController {
  constructor(
    private readonly chiefComplaintsService: ChiefComplaintsListService
  ) { }

  @Get()
  @ApiOperation({ summary: "Get Complaints" })
  @ApiResponse({
    status: 200,
    description: "Get Complaints",
    type: [ChiefComplaintsList],
  })
  async findAll(@Query('search') search: any) {
    return this.chiefComplaintsService.findAll(search);
  }

  @Post("search-or-create")
  @ApiOperation({ summary: "Search/Create a complaints" })
  @ApiResponse({
    status: 201,
    description: "Search/Create a complaints",
    type: [ChiefComplaintsList],
  })
  async searchOrCreate(@Body() SearchComplaintsDto: SearchComplaintsDto) {
    return this.chiefComplaintsService.searchOrCreate(
      SearchComplaintsDto.chief_complaints
    );
  }
}
