sms-setting and campain

This commit is contained in:
2026-07-09 19:12:23 +03:30
parent 1dd2813a01
commit ffb95149cf
33 changed files with 2745 additions and 6 deletions
+2
View File
@@ -6,6 +6,7 @@ import { CustomersModule } from '../customers/customers.module';
import { SalonsModule } from '../salons/salons.module';
import { ServiceSkill } from '../services/entities/service-skill.entity';
import { Service } from '../services/entities/service.entity';
import { SmsSettingsModule } from '../sms-settings/sms-settings.module';
import { StylistsModule } from '../stylists/stylists.module';
import { ReserveItem } from './entities/reserve-item.entity';
import { ReserveStatusHistory } from './entities/reserve-status-history.entity';
@@ -27,6 +28,7 @@ import { ReservesService } from './reserves.service';
StylistsModule,
AuthorizationModule,
AuthGuardsModule,
SmsSettingsModule,
],
controllers: [ReservesController],
providers: [ReservesService],
+19 -1
View File
@@ -21,6 +21,7 @@ import { UpdateReserveDto } from './dto/update-reserve.dto';
import { ReserveItem } from './entities/reserve-item.entity';
import { ReserveStatusHistory } from './entities/reserve-status-history.entity';
import { Reserve } from './entities/reserve.entity';
import { ReserveSmsService } from '../sms-settings/reserve-sms.service';
import { ReserveStatus } from './enums/reserve-status.enum';
@Injectable()
@@ -41,6 +42,7 @@ export class ReservesService {
private readonly stylistsService: StylistsService,
private readonly authorizationService: AuthorizationService,
private readonly reservePolicy: ReservePolicy,
private readonly reserveSmsService: ReserveSmsService,
) {}
async create(
@@ -94,6 +96,7 @@ export class ReservesService {
const saved = await this.reservesRepository.save(reserve);
await this.customersService.linkToSalon(saved.salonId, saved.customerId);
await this.logStatusChange(saved.id, null, saved.status, user.id);
await this.reserveSmsService.sendReserveCreated(saved.id);
return this.findOne(saved.id, user);
}
@@ -235,6 +238,7 @@ export class ReservesService {
}
if (status !== undefined) {
const previousStatus = reserve.status;
if (status !== reserve.status) {
await this.logStatusChange(reserve.id, reserve.status, status, user.id);
}
@@ -244,7 +248,20 @@ export class ReservesService {
} else if (cancellationReason !== undefined) {
reserve.cancellationReason = cancellationReason;
}
} else if (cancellationReason !== undefined) {
await this.reservesRepository.save(reserve);
if (
status === ReserveStatus.CANCELLED &&
previousStatus !== ReserveStatus.CANCELLED
) {
await this.reserveSmsService.sendReserveCancelled(reserve.id);
}
return this.findOne(id, user);
}
if (cancellationReason !== undefined) {
reserve.cancellationReason = cancellationReason;
}
@@ -290,6 +307,7 @@ export class ReservesService {
reserve.status = ReserveStatus.CONFIRMED;
await this.reservesRepository.save(reserve);
await this.reserveSmsService.sendReserveConfirmed(reserve.id);
}
private async logStatusChange(