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?