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 serialization

  • configuration: Service configuration settings

  • presentation: Visual presentation and branding

  • prepaymentPolicy: Payment requirements and policies

  • languageVersions: Service details in multiple languages (required)

  • durationVersions: Available duration and pricing options

  • schedules: Available time slots and scheduling rules

  • order: 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 media

  • color: Hex color code or color name for theming

PrepaymentPolicyDto

Payment policy and prepayment requirements.

Properties:

  • isRequired: Whether prepayment is mandatory

  • isPercentage: Whether value is percentage or fixed amount

  • value: Prepayment amount or percentage

  • minimalCancelTime: Minimum cancellation time in seconds

DurationVersionDto

Specific duration option with pricing.

Properties:

  • breakInSeconds: Break time after service completion

  • durationInSeconds: 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 description

  • Inherits: page, size from PaginationDto

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 IBase for common entity properties

  • Contains all service domain properties

  • Used for domain logic and validation

IPresentation

Presentation value object interface.

Properties:

  • color: Hex color or color name for theming

  • banners: Array of media items for service display

IDurationVersion

Duration version value object interface.

Properties:

  • breakInSeconds: Break time after service

  • durationInSeconds: Service duration

  • prices: 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 value

  • currency: Currency code for the price

  • preferredLanguages: Target languages for this price

Enumerations

DurationVersionTypeEnum

Defines how service duration is handled.

Values:

  • RANGE: Fixed duration range with breaks

  • VARIABLE: 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 version

  • title: Service title in specified language

  • description: Optional detailed description

MediaDto

Media file information.

Properties:

  • url: Media file URL

  • mimeType: MIME type of the file

  • filename: Original filename

  • size: File size in bytes

  • description: Media description

ScheduleDto

Service availability schedule.

Properties:

  • weekDays: Array of weekday numbers (1=Monday, 7=Sunday)

  • startTime: Start time in HH:mm format

  • endTime: End time in HH:mm format

  • timezone: Optional timezone identifier

RequiredResourceDto

Resource requirements for services.

Properties:

  • resourceId: Reference to resource entity

  • quantity: Number of resources needed

  • isRequired: 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?