Interface Documentation
Overview
Core Interfaces
Customer Entity Interface
interface ICustomer extends IBase {
firstName?: string; // Customer first name
lastName?: string; // Customer last name
phone?: string; // Normalized phone number (numbers only)
email?: string; // Validated email address
note?: string; // Internal business notes
customerType?: CustomerTypeEnum; // Customer classification type
createdAt?: string; // Creation timestamp (ISO string)
updatedAt?: string; // Last update timestamp (ISO string)
}Base Entity Interface
interface IBase {
_id?: string; // MongoDB ObjectId as string
state?: string; // Entity state (active, inactive, deleted)
stateHistory?: IStateHistoryEntry[]; // State change audit trail
_version?: string; // Optimistic locking version
}Data Transfer Objects (DTOs)
CustomerDto
CustomerPaginationDto
CustomerFilterDto
Order Integration DTOs
AttendantDto
PublicAttendantDto
Enumerations
CustomerTypeEnum
CustomerStateEnum
Use Case Interfaces
Customer Use Case Parameters
Customer Validation Parameters
Domain Value Objects
Customer Contact Information
Customer Preferences
Command and Query Interfaces
Command Interfaces
Query Interfaces
Message Interfaces
Customer Event Messages
Cache Interfaces
Cache Key Definitions
Cache Strategy Interfaces
Repository Filter Interfaces
Customer Repository Filters
Customer Search Criteria
Context Interfaces
Tenant Actor Context
Customer Operation Context
Validation and Error Interfaces
Customer Validation Result
Exception Interfaces
Integration Interfaces
Order Integration
Payment Integration
Notification Integration
Mapper Interfaces
Customer Mapping Contracts
Type Utilities
Customer Type Guards
Customer Utility Types
Configuration Interfaces
Customer Module Configuration
Usage Guidelines
DTO Validation
Type Safety
Error Handling
Message Contracts
Cache Keys
Context Propagation
Interface Evolution
Performance Considerations
Security Considerations
Summary
Last updated