Interface Documentation
Overview
This document provides comprehensive TypeScript interface definitions, DTOs, enums, and contracts used throughout the Service Management module. The service management system handles bookable services with complex configuration options, multilingual support, and flexible pricing models.
Core Data Transfer Objects (DTOs)
ServiceDto
The main service data transfer object containing all service information.
interface ServiceDto extends BaseEntityDto {
object?: 'ServiceDto';
configuration?: ServiceConfigurationDto;
presentation?: PresentationDto;
prepaymentPolicy?: PrepaymentPolicyDto;
languageVersions: LanguageVersionDto[];
durationVersions?: DurationVersionDto[];
schedules?: ScheduleDto[];
order?: number | null;
}Properties:
object: Object type identifier for serializationconfiguration: Service configuration settingspresentation: Visual presentation and brandingprepaymentPolicy: Payment requirements and policieslanguageVersions: Service details in multiple languages (required)durationVersions: Available duration and pricing optionsschedules: Available time slots and scheduling rulesorder: Display order for service listing
ServiceConfigurationDto
Configuration settings that define service behavior.
Properties:
duration: Duration configuration options
DurationConfigurationDto
Defines how service duration is managed.
Properties:
durationVersionType: Type of duration configuration (RANGE, VARIABLE)
PresentationDto
Visual presentation and media configuration.
Properties:
banners: Array of banner images and mediacolor: Hex color code or color name for theming
PrepaymentPolicyDto
Payment policy and prepayment requirements.
Properties:
isRequired: Whether prepayment is mandatoryisPercentage: Whether value is percentage or fixed amountvalue: Prepayment amount or percentageminimalCancelTime: Minimum cancellation time in seconds
DurationVersionDto
Specific duration option with pricing.
Properties:
breakInSeconds: Break time after service completiondurationInSeconds: Service duration in seconds (required)prices: Available pricing options for this duration
PriceDto
Pricing information for services.
Properties:
price: Price amount (required)currency: Currency code (default: USD)preferredLanguages: Languages this price applies to
ServicePaginationDto
Pagination parameters for service listing.
Properties:
phrase: Search phrase for filtering services by title or descriptionInherits:
page,sizefromPaginationDto
PublicServiceDto
Public-facing service information (limited data for client apps).
Properties:
Contains only public information (no internal configuration)
Used for customer-facing service displays
RequestPublicServiceDto
Service data used in public order creation.
Properties:
Service snapshot for order processing
Immutable service data preserved in orders
Domain Interfaces
IService
Core service domain interface.
Properties:
Extends
IBasefor common entity propertiesContains all service domain properties
Used for domain logic and validation
IPresentation
Presentation value object interface.
Properties:
color: Hex color or color name for themingbanners: Array of media items for service display
IDurationVersion
Duration version value object interface.
Properties:
breakInSeconds: Break time after servicedurationInSeconds: Service durationprices: Array of pricing options
IServiceConfiguration
Service configuration value object interface.
Properties:
duration: Duration-related configuration
IPaymentPolicy
Payment policy value object interface.
Properties:
Defines prepayment requirements and cancellation policies
IPrice
Price value object interface.
Properties:
price: Numeric price valuecurrency: Currency code for the pricepreferredLanguages: Target languages for this price
Enumerations
DurationVersionTypeEnum
Defines how service duration is handled.
Values:
RANGE: Fixed duration range with breaksVARIABLE: Variable duration based on customer needs
CurrencyCodeEnum
ISO 4217 currency codes for pricing.
Usage:
Used for pricing in different currencies
Supports international businesses
Validates currency format in pricing
LanguageCodeEnum
ISO 639-1 language codes for internationalization.
Usage:
Multilingual service descriptions
Language-specific pricing
Localized service information
Shared DTOs and Interfaces
LanguageVersionDto
Multilingual content structure.
Properties:
language: Language code for this versiontitle: Service title in specified languagedescription: Optional detailed description
MediaDto
Media file information.
Properties:
url: Media file URLmimeType: MIME type of the filefilename: Original filenamesize: File size in bytesdescription: Media description
ScheduleDto
Service availability schedule.
Properties:
weekDays: Array of weekday numbers (1=Monday, 7=Sunday)startTime: Start time in HH:mm formatendTime: End time in HH:mm formattimezone: Optional timezone identifier
RequiredResourceDto
Resource requirements for services.
Properties:
resourceId: Reference to resource entityquantity: Number of resources neededisRequired: Whether resource is mandatory
Validation Constraints
Service Validation Rules
Language Version Validation
Duration Version Validation
Type Guards and Utilities
Service Type Guards
Price Utilities
Duration Utilities
Error Types
Service-Specific Exceptions
Validation Error Types
Constants and Defaults
Service Constants
Default Service Template
Integration Patterns
Repository Interface
Mapper Interface
Event Interfaces
Last updated
Was this helpful?