Class InMemoryAppointmentRepository

Hierarchy (View Summary)

Implements

Constructors

Properties

items: Map<
    string,
    {
        actualDuration?: number;
        additionalServices?: { notes?: string; price: number; serviceId: string }[];
        barberId: string;
        cancellationReason?: string;
        cancelledAt?: Date;
        cancelledBy?: string;
        completedAt?: Date;
        completedBy?: string;
        createdAt: Date;
        customerId: string;
        endTime: Date;
        feedback?: {
            cleanliness?: number;
            comment?: string;
            rating?: number;
            serviceQuality?: number;
            timeliness?: number;
        };
        id: string;
        notes?: string;
        paymentMethod?: "CASH"
        | "CARD"
        | "DIGITAL_WALLET";
        paymentStatus?: "PAID" | "PENDING" | "FAILED";
        reschedulingHistory?: {
            previousBarberId: string;
            previousEndTime: Date;
            previousStartTime: Date;
            reason?: string;
            rescheduledAt: Date;
            rescheduledBy: string;
        }[];
        serviceId: string;
        startTime: Date;
        status: "pending"
        | "confirmed"
        | "cancelled"
        | "completed";
        totalAmount?: number;
        updatedAt: Date;
    },
>

Methods

  • Parameters

    • items: {
          actualDuration?: number;
          additionalServices?: { notes?: string; price: number; serviceId: string }[];
          barberId: string;
          cancellationReason?: string;
          cancelledAt?: Date;
          cancelledBy?: string;
          completedAt?: Date;
          completedBy?: string;
          createdAt: Date;
          customerId: string;
          endTime: Date;
          feedback?: {
              cleanliness?: number;
              comment?: string;
              rating?: number;
              serviceQuality?: number;
              timeliness?: number;
          };
          id: string;
          notes?: string;
          paymentMethod?: "CASH"
          | "CARD"
          | "DIGITAL_WALLET";
          paymentStatus?: "PAID" | "PENDING" | "FAILED";
          reschedulingHistory?: {
              previousBarberId: string;
              previousEndTime: Date;
              previousStartTime: Date;
              reason?: string;
              rescheduledAt: Date;
              rescheduledBy: string;
          }[];
          serviceId: string;
          startTime: Date;
          status: "pending"
          | "confirmed"
          | "cancelled"
          | "completed";
          totalAmount?: number;
          updatedAt: Date;
      }[]
    • filters: IFilterOptions

    Returns {
        actualDuration?: number;
        additionalServices?: { notes?: string; price: number; serviceId: string }[];
        barberId: string;
        cancellationReason?: string;
        cancelledAt?: Date;
        cancelledBy?: string;
        completedAt?: Date;
        completedBy?: string;
        createdAt: Date;
        customerId: string;
        endTime: Date;
        feedback?: {
            cleanliness?: number;
            comment?: string;
            rating?: number;
            serviceQuality?: number;
            timeliness?: number;
        };
        id: string;
        notes?: string;
        paymentMethod?: "CASH"
        | "CARD"
        | "DIGITAL_WALLET";
        paymentStatus?: "PAID" | "PENDING" | "FAILED";
        reschedulingHistory?: {
            previousBarberId: string;
            previousEndTime: Date;
            previousStartTime: Date;
            reason?: string;
            rescheduledAt: Date;
            rescheduledBy: string;
        }[];
        serviceId: string;
        startTime: Date;
        status: "pending"
        | "confirmed"
        | "cancelled"
        | "completed";
        totalAmount?: number;
        updatedAt: Date;
    }[]

  • Parameters

    • barberId: string
    • startDate: Date
    • endDate: Date
    • reason: string

    Returns Promise<number>

  • Returns void

  • Parameters

    • appointmentId: string

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >

  • Parameters

    • entity: {
          actualDuration?: number;
          additionalServices?: { notes?: string; price: number; serviceId: string }[];
          barberId: string;
          cancellationReason?: string;
          cancelledAt?: Date;
          cancelledBy?: string;
          completedAt?: Date;
          completedBy?: string;
          createdAt: Date;
          customerId: string;
          endTime: Date;
          feedback?: {
              cleanliness?: number;
              comment?: string;
              rating?: number;
              serviceQuality?: number;
              timeliness?: number;
          };
          id: string;
          notes?: string;
          paymentMethod?: "CASH"
          | "CARD"
          | "DIGITAL_WALLET";
          paymentStatus?: "PAID" | "PENDING" | "FAILED";
          reschedulingHistory?: {
              previousBarberId: string;
              previousEndTime: Date;
              previousStartTime: Date;
              reason?: string;
              rescheduledAt: Date;
              rescheduledBy: string;
          }[];
          serviceId: string;
          startTime: Date;
          status: "pending"
          | "confirmed"
          | "cancelled"
          | "completed";
          totalAmount?: number;
          updatedAt: Date;
      }

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >

  • Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        }[],
    >

  • Parameters

    • barberId: string
    • date: Date
    • duration: number

    Returns Promise<TimeSlotVO[]>

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    • id: string

    Returns Promise<
        | null
        | {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >

  • Parameters

    • status: "pending" | "confirmed" | "cancelled" | "completed"
    • Optionaloptions: IQueryOptions

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    Returns Promise<
        | null
        | {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >

  • Parameters

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        }[],
    >

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    • timeSlot: TimeSlotVO
    • OptionalexcludeAppointmentId: string

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        }[],
    >

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                actualDuration?: number;
                additionalServices?: { notes?: string; price: number; serviceId: string }[];
                barberId: string;
                cancellationReason?: string;
                cancelledAt?: Date;
                cancelledBy?: string;
                completedAt?: Date;
                completedBy?: string;
                createdAt: Date;
                customerId: string;
                endTime: Date;
                feedback?: {
                    cleanliness?: number;
                    comment?: string;
                    rating?: number;
                    serviceQuality?: number;
                    timeliness?: number;
                };
                id: string;
                notes?: string;
                paymentMethod?: "CASH"
                | "CARD"
                | "DIGITAL_WALLET";
                paymentStatus?: "PAID" | "PENDING" | "FAILED";
                reschedulingHistory?: {
                    previousBarberId: string;
                    previousEndTime: Date;
                    previousStartTime: Date;
                    reason?: string;
                    rescheduledAt: Date;
                    rescheduledBy: string;
                }[];
                serviceId: string;
                startTime: Date;
                status: "pending"
                | "confirmed"
                | "cancelled"
                | "completed";
                totalAmount?: number;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    • appointmentId: string
    • Optionalnotes: string

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >

  • Parameters

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >

  • Parameters

    • id: string
    • entity: {
          actualDuration?: number;
          additionalServices?: { notes?: string; price: number; serviceId: string }[];
          barberId: string;
          cancellationReason?: string;
          cancelledAt?: Date;
          cancelledBy?: string;
          completedAt?: Date;
          completedBy?: string;
          createdAt: Date;
          customerId: string;
          endTime: Date;
          feedback?: {
              cleanliness?: number;
              comment?: string;
              rating?: number;
              serviceQuality?: number;
              timeliness?: number;
          };
          id: string;
          notes?: string;
          paymentMethod?: "CASH"
          | "CARD"
          | "DIGITAL_WALLET";
          paymentStatus?: "PAID" | "PENDING" | "FAILED";
          reschedulingHistory?: {
              previousBarberId: string;
              previousEndTime: Date;
              previousStartTime: Date;
              reason?: string;
              rescheduledAt: Date;
              rescheduledBy: string;
          }[];
          serviceId: string;
          startTime: Date;
          status: "pending"
          | "confirmed"
          | "cancelled"
          | "completed";
          totalAmount?: number;
          updatedAt: Date;
      }

    Returns Promise<
        {
            actualDuration?: number;
            additionalServices?: { notes?: string; price: number; serviceId: string }[];
            barberId: string;
            cancellationReason?: string;
            cancelledAt?: Date;
            cancelledBy?: string;
            completedAt?: Date;
            completedBy?: string;
            createdAt: Date;
            customerId: string;
            endTime: Date;
            feedback?: {
                cleanliness?: number;
                comment?: string;
                rating?: number;
                serviceQuality?: number;
                timeliness?: number;
            };
            id: string;
            notes?: string;
            paymentMethod?: "CASH"
            | "CARD"
            | "DIGITAL_WALLET";
            paymentStatus?: "PAID" | "PENDING" | "FAILED";
            reschedulingHistory?: {
                previousBarberId: string;
                previousEndTime: Date;
                previousStartTime: Date;
                reason?: string;
                rescheduledAt: Date;
                rescheduledBy: string;
            }[];
            serviceId: string;
            startTime: Date;
            status: "pending"
            | "confirmed"
            | "cancelled"
            | "completed";
            totalAmount?: number;
            updatedAt: Date;
        },
    >