Class InMemoryServiceRepository

Hierarchy (View Summary)

Implements

Constructors

Properties

items: Map<
    string,
    {
        category: | "HAIRCUT"
        | "BEARD"
        | "STYLING"
        | "COLORING"
        | "TREATMENT"
        | "PACKAGE";
        createdAt: Date;
        description: string;
        duration: number;
        id: string;
        isActive: boolean;
        name: string;
        packageDetails?: {
            savings: number;
            services: {
                individualPrice: number;
                quantity: number;
                serviceId: string;
                serviceName: string;
            }[];
            totalValue: number;
        };
        price: number;
        priceHistory?: { effectiveUntil: Date; price: number }[];
        requiresConsultation: boolean;
        updatedAt: Date;
    },
>

Methods

  • Parameters

    • items: {
          category:
              | "HAIRCUT"
              | "BEARD"
              | "STYLING"
              | "COLORING"
              | "TREATMENT"
              | "PACKAGE";
          createdAt: Date;
          description: string;
          duration: number;
          id: string;
          isActive: boolean;
          name: string;
          packageDetails?: {
              savings: number;
              services: {
                  individualPrice: number;
                  quantity: number;
                  serviceId: string;
                  serviceName: string;
              }[];
              totalValue: number;
          };
          price: number;
          priceHistory?: { effectiveUntil: Date; price: number }[];
          requiresConsultation: boolean;
          updatedAt: Date;
      }[]
    • filters: IFilterOptions

    Returns {
        category:
            | "HAIRCUT"
            | "BEARD"
            | "STYLING"
            | "COLORING"
            | "TREATMENT"
            | "PACKAGE";
        createdAt: Date;
        description: string;
        duration: number;
        id: string;
        isActive: boolean;
        name: string;
        packageDetails?: {
            savings: number;
            services: {
                individualPrice: number;
                quantity: number;
                serviceId: string;
                serviceName: string;
            }[];
            totalValue: number;
        };
        price: number;
        priceHistory?: { effectiveUntil: Date; price: number }[];
        requiresConsultation: boolean;
        updatedAt: Date;
    }[]

  • Returns void

  • Parameters

    • entity: {
          category:
              | "HAIRCUT"
              | "BEARD"
              | "STYLING"
              | "COLORING"
              | "TREATMENT"
              | "PACKAGE";
          createdAt: Date;
          description: string;
          duration: number;
          id: string;
          isActive: boolean;
          name: string;
          packageDetails?: {
              savings: number;
              services: {
                  individualPrice: number;
                  quantity: number;
                  serviceId: string;
                  serviceName: string;
              }[];
              totalValue: number;
          };
          price: number;
          priceHistory?: { effectiveUntil: Date; price: number }[];
          requiresConsultation: boolean;
          updatedAt: Date;
      }

    Returns Promise<
        {
            category: | "HAIRCUT"
            | "BEARD"
            | "STYLING"
            | "COLORING"
            | "TREATMENT"
            | "PACKAGE";
            createdAt: Date;
            description: string;
            duration: number;
            id: string;
            isActive: boolean;
            name: string;
            packageDetails?: {
                savings: number;
                services: {
                    individualPrice: number;
                    quantity: number;
                    serviceId: string;
                    serviceName: string;
                }[];
                totalValue: number;
            };
            price: number;
            priceHistory?: { effectiveUntil: Date; price: number }[];
            requiresConsultation: boolean;
            updatedAt: Date;
        },
    >

  • Parameters

    • name: string
    • description: string
    • services: { quantity: number; serviceId: string }[]
    • price: number

    Returns Promise<ServiceEntity>

  • Returns Promise<
        {
            category: | "HAIRCUT"
            | "BEARD"
            | "STYLING"
            | "COLORING"
            | "TREATMENT"
            | "PACKAGE";
            createdAt: Date;
            description: string;
            duration: number;
            id: string;
            isActive: boolean;
            name: string;
            packageDetails?: {
                savings: number;
                services: {
                    individualPrice: number;
                    quantity: number;
                    serviceId: string;
                    serviceName: string;
                }[];
                totalValue: number;
            };
            price: number;
            priceHistory?: { effectiveUntil: Date; price: number }[];
            requiresConsultation: boolean;
            updatedAt: Date;
        }[],
    >

  • Parameters

    Returns Promise<
        | null
        | {
            category: | "HAIRCUT"
            | "BEARD"
            | "STYLING"
            | "COLORING"
            | "TREATMENT"
            | "PACKAGE";
            createdAt: Date;
            description: string;
            duration: number;
            id: string;
            isActive: boolean;
            name: string;
            packageDetails?: {
                savings: number;
                services: {
                    individualPrice: number;
                    quantity: number;
                    serviceId: string;
                    serviceName: string;
                }[];
                totalValue: number;
            };
            price: number;
            priceHistory?: { effectiveUntil: Date; price: number }[];
            requiresConsultation: boolean;
            updatedAt: Date;
        },
    >

  • Parameters

    Returns Promise<
        IPagedResult<
            {
                category: | "HAIRCUT"
                | "BEARD"
                | "STYLING"
                | "COLORING"
                | "TREATMENT"
                | "PACKAGE";
                createdAt: Date;
                description: string;
                duration: number;
                id: string;
                isActive: boolean;
                name: string;
                packageDetails?: {
                    savings: number;
                    services: {
                        individualPrice: number;
                        quantity: number;
                        serviceId: string;
                        serviceName: string;
                    }[];
                    totalValue: number;
                };
                price: number;
                priceHistory?: { effectiveUntil: Date; price: number }[];
                requiresConsultation: boolean;
                updatedAt: Date;
            },
        >,
    >

  • Parameters

    • startDate: Date
    • endDate: Date
    • Optionallimit: number

    Returns Promise<{ bookingCount: number; revenue: number; service: ServiceEntity }[]>

  • Parameters

    • serviceId: string
    • date: Date

    Returns Promise<{ availableSlots: Date[]; barberId: string }[]>

  • Parameters

    • serviceId: string

    Returns Promise<
        {
            averageRating?: number;
            popularTimeSlots: {
                bookingCount: number;
                dayOfWeek: number;
                hour: number;
            }[];
            totalBookings: number;
            totalRevenue: number;
        },
    >

  • Parameters

    • id: string
    • entity: {
          category:
              | "HAIRCUT"
              | "BEARD"
              | "STYLING"
              | "COLORING"
              | "TREATMENT"
              | "PACKAGE";
          createdAt: Date;
          description: string;
          duration: number;
          id: string;
          isActive: boolean;
          name: string;
          packageDetails?: {
              savings: number;
              services: {
                  individualPrice: number;
                  quantity: number;
                  serviceId: string;
                  serviceName: string;
              }[];
              totalValue: number;
          };
          price: number;
          priceHistory?: { effectiveUntil: Date; price: number }[];
          requiresConsultation: boolean;
          updatedAt: Date;
      }

    Returns Promise<
        {
            category: | "HAIRCUT"
            | "BEARD"
            | "STYLING"
            | "COLORING"
            | "TREATMENT"
            | "PACKAGE";
            createdAt: Date;
            description: string;
            duration: number;
            id: string;
            isActive: boolean;
            name: string;
            packageDetails?: {
                savings: number;
                services: {
                    individualPrice: number;
                    quantity: number;
                    serviceId: string;
                    serviceName: string;
                }[];
                totalValue: number;
            };
            price: number;
            priceHistory?: { effectiveUntil: Date; price: number }[];
            requiresConsultation: boolean;
            updatedAt: Date;
        },
    >

  • Parameters

    • serviceId: string
    • newPrice: number
    • OptionaleffectiveDate: Date

    Returns Promise<ServiceEntity>