"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ClientConfigResponseDto = exports.UiConfigDto = exports.SsoConfigDto = exports.SsoProviderConfigDto = exports.TenantsConfigDto = exports.TenantOptionDto = exports.MfaConfigDto = exports.RegistrationConfigDto = exports.PhoneAuthConfigDto = exports.EmailAuthConfigDto = void 0;
const swagger_1 = require("@nestjs/swagger");
class EmailAuthConfigDto {
    enabled;
}
exports.EmailAuthConfigDto = EmailAuthConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: true }),
    __metadata("design:type", Boolean)
], EmailAuthConfigDto.prototype, "enabled", void 0);
class PhoneAuthConfigDto {
    enabled;
}
exports.PhoneAuthConfigDto = PhoneAuthConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: false }),
    __metadata("design:type", Boolean)
], PhoneAuthConfigDto.prototype, "enabled", void 0);
class RegistrationConfigDto {
    enabled;
    requireInvitation;
    collectProfileFields;
}
exports.RegistrationConfigDto = RegistrationConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: true, description: 'Whether user registration is enabled' }),
    __metadata("design:type", Boolean)
], RegistrationConfigDto.prototype, "enabled", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: false, description: 'Whether registration requires an invitation' }),
    __metadata("design:type", Boolean)
], RegistrationConfigDto.prototype, "requireInvitation", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({
        description: 'Additional profile fields to collect during registration',
        type: 'array',
        items: {
            type: 'object',
            properties: {
                id: { type: 'string' },
                label: { type: 'string' },
                required: { type: 'boolean' },
                type: { type: 'string', enum: ['text', 'email', 'phone', 'select', 'checkbox', 'password'] },
                placeholder: { type: 'string' },
                options: {
                    type: 'array',
                    items: {
                        type: 'object',
                        properties: {
                            label: { type: 'string' },
                            value: { type: 'string' },
                        },
                    },
                },
            },
        },
    }),
    __metadata("design:type", Array)
], RegistrationConfigDto.prototype, "collectProfileFields", void 0);
class MfaConfigDto {
    enabled;
    methods;
    allowUserToggle;
    allowMethodSelection;
}
exports.MfaConfigDto = MfaConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: true }),
    __metadata("design:type", Boolean)
], MfaConfigDto.prototype, "enabled", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: ['email', 'totp'], isArray: true }),
    __metadata("design:type", Array)
], MfaConfigDto.prototype, "methods", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: true }),
    __metadata("design:type", Boolean)
], MfaConfigDto.prototype, "allowUserToggle", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: true }),
    __metadata("design:type", Boolean)
], MfaConfigDto.prototype, "allowMethodSelection", void 0);
class TenantOptionDto {
    id;
    name;
    slug;
    isActive;
    metadata;
}
exports.TenantOptionDto = TenantOptionDto;
__decorate([
    (0, swagger_1.ApiProperty)(),
    __metadata("design:type", String)
], TenantOptionDto.prototype, "id", void 0);
__decorate([
    (0, swagger_1.ApiProperty)(),
    __metadata("design:type", String)
], TenantOptionDto.prototype, "name", void 0);
__decorate([
    (0, swagger_1.ApiProperty)(),
    __metadata("design:type", String)
], TenantOptionDto.prototype, "slug", void 0);
__decorate([
    (0, swagger_1.ApiProperty)(),
    __metadata("design:type", Boolean)
], TenantOptionDto.prototype, "isActive", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", Object)
], TenantOptionDto.prototype, "metadata", void 0);
class TenantsConfigDto {
    mode;
    defaultTenantId;
    options;
}
exports.TenantsConfigDto = TenantsConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: 'single', enum: ['single', 'multi'] }),
    __metadata("design:type", String)
], TenantsConfigDto.prototype, "mode", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ nullable: true }),
    __metadata("design:type", String)
], TenantsConfigDto.prototype, "defaultTenantId", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: [TenantOptionDto] }),
    __metadata("design:type", Array)
], TenantsConfigDto.prototype, "options", void 0);
class SsoProviderConfigDto {
    id;
    name;
    logoUrl;
    authorizationUrl;
    clientId;
    hint;
}
exports.SsoProviderConfigDto = SsoProviderConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)(),
    __metadata("design:type", String)
], SsoProviderConfigDto.prototype, "id", void 0);
__decorate([
    (0, swagger_1.ApiProperty)(),
    __metadata("design:type", String)
], SsoProviderConfigDto.prototype, "name", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], SsoProviderConfigDto.prototype, "logoUrl", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], SsoProviderConfigDto.prototype, "authorizationUrl", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], SsoProviderConfigDto.prototype, "clientId", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], SsoProviderConfigDto.prototype, "hint", void 0);
class SsoConfigDto {
    enabled;
    providers;
}
exports.SsoConfigDto = SsoConfigDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: false }),
    __metadata("design:type", Boolean)
], SsoConfigDto.prototype, "enabled", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: [SsoProviderConfigDto] }),
    __metadata("design:type", Array)
], SsoConfigDto.prototype, "providers", void 0);
class UiConfigDto {
    brandName;
    brandColor;
    logoUrl;
    backgroundImageUrl;
}
exports.UiConfigDto = UiConfigDto;
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], UiConfigDto.prototype, "brandName", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], UiConfigDto.prototype, "brandColor", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], UiConfigDto.prototype, "logoUrl", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)(),
    __metadata("design:type", String)
], UiConfigDto.prototype, "backgroundImageUrl", void 0);
class ClientConfigResponseDto {
    emailAuth;
    phoneAuth;
    registration;
    mfa;
    tenants;
    sso;
    ui;
}
exports.ClientConfigResponseDto = ClientConfigResponseDto;
__decorate([
    (0, swagger_1.ApiProperty)({ type: EmailAuthConfigDto }),
    __metadata("design:type", EmailAuthConfigDto)
], ClientConfigResponseDto.prototype, "emailAuth", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: PhoneAuthConfigDto }),
    __metadata("design:type", PhoneAuthConfigDto)
], ClientConfigResponseDto.prototype, "phoneAuth", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: RegistrationConfigDto }),
    __metadata("design:type", RegistrationConfigDto)
], ClientConfigResponseDto.prototype, "registration", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: MfaConfigDto }),
    __metadata("design:type", MfaConfigDto)
], ClientConfigResponseDto.prototype, "mfa", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: TenantsConfigDto }),
    __metadata("design:type", TenantsConfigDto)
], ClientConfigResponseDto.prototype, "tenants", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: SsoConfigDto }),
    __metadata("design:type", SsoConfigDto)
], ClientConfigResponseDto.prototype, "sso", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: UiConfigDto }),
    __metadata("design:type", UiConfigDto)
], ClientConfigResponseDto.prototype, "ui", void 0);
//# sourceMappingURL=client-config.response.dto.js.map