diff --git a/server/src/Models/Metrics/Metrics.Adapter.Mongoose.ts b/server/src/Models/Metrics/Metrics.Adapter.Mongoose.ts index 7dfb6dd..38a9bb5 100644 --- a/server/src/Models/Metrics/Metrics.Adapter.Mongoose.ts +++ b/server/src/Models/Metrics/Metrics.Adapter.Mongoose.ts @@ -157,7 +157,10 @@ export class MetricsAdapterMongoose implements IMetricsAdapter { if (!metrics.repeatsCount) { metrics.repeatsCount = 0; } - metrics.repeatsCount += isNull(data.quantity, 1); + metrics.repeatsCount = Math.max( + 0, + isNull(metrics.repeatsCount, 0) + isNull(data.quantity, 1) + ); await metrics.save(); } } diff --git a/server/src/Models/Metrics/Metrics.Interface.ts b/server/src/Models/Metrics/Metrics.Interface.ts index 067c957..696af3f 100644 --- a/server/src/Models/Metrics/Metrics.Interface.ts +++ b/server/src/Models/Metrics/Metrics.Interface.ts @@ -37,6 +37,7 @@ export interface IMetricsAdapter { addService(data: MetricsParams): Promise; addAppointment(data: MetricsParams): Promise; addClient(data: MetricsParams): Promise; + addRepeat(data: MetricsParams): Promise; } export interface IMetricsManager { @@ -50,6 +51,7 @@ export interface IMetricsManager { reserveAppointment(data: MetricsParams): Promise; releaseAppointment(data: MetricsParams): Promise; addClient(data: MetricsParams): Promise; + addRepeat(data: MetricsParams): Promise; canAddOrganization(userId: string): Promise; canAddEmployee(userId: string): Promise; canAddService(userId: string): Promise; diff --git a/server/src/Models/Repeats/Repeats.ts b/server/src/Models/Repeats/Repeats.ts index 5241e16..589792b 100644 --- a/server/src/Models/Repeats/Repeats.ts +++ b/server/src/Models/Repeats/Repeats.ts @@ -212,6 +212,7 @@ class RepeatsManager implements IRepeatsManager { } await this.repeats.delete(data.repeatId); + await MetricsList.addRepeat({ userId: String(companyCheck.ownerId), quantity: -1 }); } public async deleteRepeatsByCompany(data: DeleteRepeatsByCompanyParams): Promise {