/** * Campaign Validator * * Demonstrates extending BaseValidator for a campaign domain entity. * Uses schemas and types from @plyaz/types/campaign. * * @fileoverview Campaign validation logic using Zod schemas * @module CampaignValidator */ import { BaseValidator } from '../../base'; import type { CreateCampaignDTO, UpdateCampaignDTO, PatchCampaignDTO, DeleteCampaignDTO, QueryCampaignDTO } from '@plyaz/types/campaign'; /** * Campaign Validator implementation * * Supports validation for all HTTP operations: * - create (POST) - Full campaign data validation * - update (PUT) - Full campaign data validation * - patch (PATCH) - Partial campaign data validation * - delete (DELETE) - Delete options validation * - query (GET) - Query parameters validation * * @class CampaignValidatorClass * @extends {BaseValidator} */ declare class CampaignValidatorClass extends BaseValidator { /** * Creates an instance of CampaignValidatorClass * Initializes with campaign-specific Zod schemas */ constructor(); /** * Custom validation: check if campaign title is not reserved * * @param {string} title - Campaign title to validate * @returns {boolean} True if title is not reserved */ validateTitleNotReserved(title: string): boolean; /** * Custom validation: check if funding target is within limits * * @param {number} fundingTarget - Funding target to validate * @param {number} maxFunding - Maximum allowed funding * @returns {boolean} True if funding target is within limits */ validateFundingWithinLimits(fundingTarget: number, maxFunding: number): boolean; /** * Custom validation: check if campaign duration is valid * * @param {number} duration - Campaign duration in days * @returns {boolean} True if duration is valid */ validateDuration(duration: number): boolean; } /** * Export class for BaseDomainService.ValidatorClass */ export { CampaignValidatorClass }; /** * Singleton instance for direct usage * @constant {CampaignValidatorClass} */ export declare const CampaignValidator: CampaignValidatorClass; //# sourceMappingURL=CampaignValidator.d.ts.map