Interface Documentation
Overview
This document provides comprehensive TypeScript interface definitions, DTOs (Data Transfer Objects), enums, and contracts for the Member Management module. These interfaces define the structure of data used throughout the member management system.
Core Interfaces
IMember
The core interface defining a team member entity.
interface IMember extends IBase {
roles: IRole[]; // Advanced role system with permissions
firstName?: string; // Member's first name (optional)
lastName?: string; // Member's last name (optional)
phone?: string; // Contact phone number (optional)
email: string; // Primary email address (required, unique)
avatar?: IMedia; // Profile avatar image reference
memberContext: IMemberContext; // Connection to account and business
language?: LanguageCodeEnum; // Preferred interface language
referal?: IReferal; // Referral information
assignments?: IAssignments; // Service and responsibility assignments
role: RoleEnum; // Primary role (legacy, kept for compatibility)
profileStatus?: MemberProfileStatusEnum; // Current member status
createdAt?: string; // Record creation timestamp
updatedAt?: string; // Last modification timestamp
}IMemberContext
Interface defining the relationship between a member, their account, and business client.
IMemberRepository
Repository interface for member data operations.
Data Transfer Objects (DTOs)
MemberDto
Primary DTO for member data transfer in API operations.
AddMemberDto
DTO specifically for member creation operations.
MemberPaginationDto
DTO for paginated member list requests with filtering and sorting.
MemberContextDto
DTO for member context operations linking accounts to business clients.
MemberContextPaginationDto
DTO for paginated member context requests.
Assignment DTOs
AssignmentsDto
DTO for managing member service assignments.
AssignmentServiceDto
DTO for service assignment configuration.
AssignedServiceDto
DTO for individual service assignment references.
Value Objects
IAssignments
Interface for member assignments and responsibilities.
IAssignmentService
Interface for service assignment configuration.
IAssignedService
Interface for individual service assignment.
IReferal
Interface for member referral information.
ReferalDto
DTO for referral information.
Enumerations
RoleEnum
Enumeration defining member roles within the business.
Role Descriptions:
ADMIN: Complete business administration, user management, settings
SPECIALIST: Service delivery, schedule management, customer interaction
RECEPTION: Customer service, appointment booking, basic administration
MANAGER: Team oversight, reporting, operational management
OWNER: Ultimate authority, business configuration, financial access
MemberProfileStatusEnum
Enumeration defining member profile status states.
Status Descriptions:
active: Member can access the system and provide services
deleted: Member has been removed but data is preserved for audit
suspended: Member access is temporarily disabled
LanguageCodeEnum
Enumeration for supported interface languages.
Use Case Parameter Interfaces
AddMemberUseCaseParams
Parameters for the add new member use case.
DeleteMemberUseCaseParams
Parameters for the delete member use case.
GetMemberByIdUseCaseParams
Parameters for getting a member by ID.
GetPagedMembersUseCaseParams
Parameters for getting paginated member list.
UpdateMemberUseCaseParams
Parameters for updating member information.
UpdateMemberAssignmentUseCaseParams
Parameters for updating member service assignments.
CQRS Command Interfaces
CreateMemberCommand
Command for creating a new member.
UpdateMemberCommand
Command for updating member information.
DeleteMemberCommand
Command for deleting a member.
UpdateMemberAssignmentCommand
Command for updating member assignments.
CQRS Query Interfaces
GetMemberByIdQuery
Query for retrieving a member by ID.
GetPagedMembersQuery
Query for retrieving paginated member list.
CheckMemberHasActiveOrdersQuery
Query for checking if member has active orders.
FetchMembersByIdsQuery
Query for fetching multiple members by their IDs.
GetOwnerMemberQuery
Query for retrieving the business owner member.
Event Interfaces
MemberAddedMessage
Event message for member creation.
MemberUpdatedMessage
Event message for member updates.
MemberDeletedMessage
Event message for member deletion.
MemberAssignmentUpdatedMessage
Event message for assignment updates.
Media Management Interfaces
MemberAvatarDto
DTO for member avatar operations.
UpsertMemberAvatarCommand
Command for uploading/updating member avatar.
DeleteMemberAvatarCommand
Command for deleting member avatar.
Notification Interfaces
MemberDeletedNotification
Notification interface for member deletion events.
Exception Interfaces
MemberNotFoundException
Exception for when a member is not found.
MemberEmailExistsException
Exception for when a member email already exists.
MemberCannotDeleteItselfException
Exception for when a member tries to delete themselves.
MemberHasActiveEventsException
Exception for when trying to delete a member with active orders.
TenantTariffPlanMaxMembersReachedException
Exception for when tariff plan member limit is reached.
Cache Key Interfaces
MemberCacheKeys
Enumeration of cache keys used in member management.
Validation Interfaces
MemberValidationResult
Interface for member validation results.
EmailValidationResult
Interface for email validation results.
API Response Interfaces
MemberResponse
Standard response wrapper for member operations.
PaginatedMemberResponse
Response interface for paginated member lists.
Integration Interfaces
MemberServiceAssignment
Interface for member-service assignment relationships.
MemberAvailability
Interface for member availability information.
Type Definitions
Member Type Guards
Type guard functions for member-related interfaces.
Utility Types
Utility types for member management operations.
Constants
Default Values
Validation Constraints
This interface documentation provides a comprehensive reference for all TypeScript interfaces, DTOs, enums, and contracts used in the Member Management module. These definitions ensure type safety and clear contracts between different layers of the application.
For implementation details and business logic, refer to the Use Case Documentation and API Documentation.
Last updated
Was this helpful?