"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.UpdateSettingsDto = void 0;
const class_validator_1 = require("class-validator");
class UpdateSettingsDto {
    schoolName;
    schoolAddress;
    schoolPhone;
    schoolEmail;
    schoolWebsite;
    logoUrl;
    loginLogoUrl;
    loginIllustrationUrl;
    faviconUrl;
    loginMainHeading;
    loginWelcomeText;
    loginPortalName;
    loginTagline;
    loginIllustrationAlt;
    theme;
    primaryColor;
    secondaryColor;
    lightPrimaryColor;
    lightSecondaryColor;
    lightPrimaryTextColor;
    lightSecondaryTextColor;
    darkPrimaryColor;
    darkSecondaryColor;
    darkPrimaryTextColor;
    darkSecondaryTextColor;
    primaryTextColor;
    secondaryTextColor;
    whatsappNumber;
    showWhatsapp;
    sidebarCollapsed;
    academicYearFormat;
    letterheadUrl;
    invoiceTerms;
    authorizedSignatureUrl;
}
exports.UpdateSettingsDto = UpdateSettingsDto;
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    (0, class_validator_1.MinLength)(1, { message: 'School name cannot be empty' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "schoolName", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "schoolAddress", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "schoolPhone", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "schoolEmail", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsUrl)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "schoolWebsite", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "logoUrl", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginLogoUrl", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginIllustrationUrl", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "faviconUrl", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginMainHeading", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginWelcomeText", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginPortalName", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginTagline", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "loginIllustrationAlt", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsIn)(['light', 'dark']),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "theme", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'primaryColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "primaryColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'secondaryColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "secondaryColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'lightPrimaryColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "lightPrimaryColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'lightSecondaryColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "lightSecondaryColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'lightPrimaryTextColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "lightPrimaryTextColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'lightSecondaryTextColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "lightSecondaryTextColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'darkPrimaryColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "darkPrimaryColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'darkSecondaryColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "darkSecondaryColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'darkPrimaryTextColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "darkPrimaryTextColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'darkSecondaryTextColor must be a valid hex color' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "darkSecondaryTextColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.ValidateIf)((o) => o.primaryTextColor !== null),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'primaryTextColor must be a valid hex color' }),
    __metadata("design:type", Object)
], UpdateSettingsDto.prototype, "primaryTextColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.ValidateIf)((o) => o.secondaryTextColor !== null),
    (0, class_validator_1.Matches)(/^#[0-9A-Fa-f]{6}$/, { message: 'secondaryTextColor must be a valid hex color' }),
    __metadata("design:type", Object)
], UpdateSettingsDto.prototype, "secondaryTextColor", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.Matches)(/^\+?[1-9]\d{1,14}$/, { message: 'Invalid WhatsApp number format' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "whatsappNumber", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], UpdateSettingsDto.prototype, "showWhatsapp", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], UpdateSettingsDto.prototype, "sidebarCollapsed", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "academicYearFormat", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "letterheadUrl", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    (0, class_validator_1.MaxLength)(2000, { message: 'Invoice terms must not exceed 2000 characters' }),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "invoiceTerms", void 0);
__decorate([
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateSettingsDto.prototype, "authorizedSignatureUrl", void 0);
//# sourceMappingURL=update-settings.dto.js.map