import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger"; import { IsBoolean, IsOptional, ValidateNested } from "class-validator"; import { Type } from "class-transformer"; export class ExternalApisSettingsDto { @ApiPropertyOptional({ description: "Master switch: when false, all inquiries use mocks regardless of per-insurer flags (`clients.settings.externalInquiries`). Manage granular flags via `/client/{clientId}/external-inquiries`.", example: false, }) @IsOptional() @IsBoolean() sandHubUseLiveApi?: boolean; } export class UpdateSystemSettingsDto { @ApiPropertyOptional({ type: ExternalApisSettingsDto }) @IsOptional() @ValidateNested() @Type(() => ExternalApisSettingsDto) externalApis?: ExternalApisSettingsDto; } export class ExternalApisSettingsViewDto { @ApiProperty({ description: "Stored in `system_settings.externalApis.sandHubUseLiveApi` — controls SandHubService", example: false, }) sandHubUseLiveApi: boolean; } export class SystemSettingsResponseDto { @ApiProperty({ example: "global" }) key: string; @ApiProperty({ type: ExternalApisSettingsViewDto }) externalApis: ExternalApisSettingsViewDto; @ApiProperty({ description: "Human-readable mode for operators", example: "mock", enum: ["live", "mock"], }) sandHubMode: "live" | "mock"; }