import { Controller, Get } from "@nestjs/common"; import { ApiOkResponse, ApiTags } from "@nestjs/swagger"; import { LookupsService } from "./lookups.service"; @ApiTags("lookups") @Controller("lookups") export class LookupsController { constructor(private readonly lookupsService: LookupsService) {} @Get("accident-causes") @ApiOkResponse({ description: "Returns accident causes lookup data", schema: { type: "array", items: { type: "object", properties: { Caption: { type: "string" }, Id: { type: "number" }, IsActive: { type: "number" }, }, }, }, }) async getAccidentCauses() { return await this.lookupsService.getAccidentCauses(); } @Get("accident-report-type") @ApiOkResponse({ description: "Returns accident report type lookup data", schema: { type: "array", items: { type: "object", }, }, }) async getAccidentReportType() { return await this.lookupsService.getAccidentReportType(); } @Get("vehicle-use-types") @ApiOkResponse({ description: "Returns vehicle use types lookup data", schema: { type: "array", items: { type: "object", }, }, }) async getVehicleUseTypes() { return await this.lookupsService.getVehicleUseTypes(); } @Get("dmg-pay-method") @ApiOkResponse({ description: "Returns damage pay method lookup data", schema: { type: "array", items: { type: "object", }, }, }) async getDmgPayMethod() { return await this.lookupsService.getDmgPayMethod(); } @Get("driving-licence-types") @ApiOkResponse({ description: "Returns driving licence types lookup data", schema: { type: "array", items: { type: "object", }, }, }) async getDrivingLicenceTypes() { return await this.lookupsService.getDrivingLicenceTypes(); } @Get("accident-culprit-type") @ApiOkResponse({ description: "Returns accident culprit type lookup data", schema: { type: "array", items: { type: "object", }, }, }) async getAccidentCulpritType() { return await this.lookupsService.getAccidentCulpritType(); } @Get("accident-way") @ApiOkResponse({ description: "Returns accident way options for the add-accident-fields step", schema: { type: "array", items: { type: "object", properties: { id: { type: "number", example: 9 }, label: { type: "string", example: "جلو به پهلو" }, }, }, }, }) async getAccidentWay() { return await this.lookupsService.getAccidentWay(); } @Get("accident-reason") @ApiOkResponse({ description: "Returns accident reason options for the add-accident-fields step", schema: { type: "array", items: { type: "object", properties: { id: { type: "number", example: 23 }, label: { type: "string", example: "عدم رعايت فاصله جانبی" }, fanavaran: { type: "number", example: 3 }, }, }, }, }) async getAccidentReason() { return await this.lookupsService.getAccidentReason(); } @Get("accident-type") @ApiOkResponse({ description: "Returns accident type options for the add-accident-fields step", schema: { type: "array", items: { type: "object", properties: { id: { type: "number", example: 3 }, label: { type: "string", example: "برخورد یک وسیله نقلیه با وسیله نقلیه پارک شده", }, }, }, }, }) async getAccidentType() { return await this.lookupsService.getAccidentType(); } @Get("accident-fields") @ApiOkResponse({ description: "Returns all three accident field lookup lists in one call — drop-in replacement for the deprecated expert-blame/request/accident-fields endpoint", schema: { type: "object", properties: { accidentWay: { type: "array", items: { type: "object", properties: { id: { type: "number", example: 9 }, label: { type: "string", example: "جلو به پهلو" }, }, }, }, accidentReason: { type: "array", items: { type: "object", properties: { id: { type: "number", example: 23 }, label: { type: "string", example: "عدم رعايت فاصله جانبی" }, fanavaran: { type: "number", example: 3 }, }, }, }, accidentType: { type: "array", items: { type: "object", properties: { id: { type: "number", example: 3 }, label: { type: "string", example: "برخورد یک وسیله نقلیه با وسیله نقلیه پارک شده", }, }, }, }, }, }, }) async getAccidentFields() { return await this.lookupsService.getAccidentFields(); } }