import {
  Controller,
  Get,
  Post,
  Body,
  Put,
  Param,
  Delete,
  Query,
  Req,
} from "@nestjs/common"
import { SalarySettingsService } from "./salary-settings.service"
import { CreateSalarySettingDto } from "./dto/create-salary-setting.dto"
import { UpdateSalarySettingDto } from "./dto/update-salary-setting.dto"
import { ApiTags } from "@nestjs/swagger"

@Controller("salary-settings")
@ApiTags("Salary Settings")
export class SalarySettingsController {
  constructor(private readonly salarySettingsService: SalarySettingsService) {}

  @Post()
  create(
    @Body() createSalarySettingDto: CreateSalarySettingDto,
    @Req() request: Request,
  ) {
    return this.salarySettingsService.create(
      createSalarySettingDto,
      request.headers["authorization"],
    )
  }

  @Get()
  findAll(@Query() query: any = {}, @Req() request: Request) {
    return this.salarySettingsService.findAll(
      query,
      request.headers["authorization"],
    )
  }

  @Get(":id")
  findOne(@Param("id") id: string) {
    return this.salarySettingsService.findOne(+id)
  }

  @Put(":id")
  update(
    @Param("id") id: string,
    @Body() updateSalarySettingDto: UpdateSalarySettingDto,
    @Req() request: Request,
  ) {
    return this.salarySettingsService.update(
      +id,
      updateSalarySettingDto,
      request.headers["authorization"],
    )
  }

  @Delete(":id")
  remove(@Param("id") id: string, @Req() request: Request) {
    return this.salarySettingsService.remove(
      +id,
      request.headers["authorization"],
    )
  }
}
