SP-1757, SP-1758, SP-1809, SP-1810: Feat/implement booking (#469)

* fix: commission device API

* task: add create booking API

* add get All api for dashboard & mobile

* add Find APIs for bookings

* implement sending email updates on update bookable space

* move email interfaces to separate files
This commit is contained in:
ZaydSkaff
2025-07-15 10:11:36 +03:00
committed by GitHub
parent a9cb1b6704
commit e5970c02c1
37 changed files with 1014 additions and 184 deletions

View File

@ -1,39 +1,39 @@
import { Module } from '@nestjs/common';
import { VisitorPasswordService } from './services/visitor-password.service';
import { VisitorPasswordController } from './controllers/visitor-password.controller';
import { ConfigModule } from '@nestjs/config';
import { DeviceRepositoryModule } from '@app/common/modules/device';
import { DeviceRepository } from '@app/common/modules/device/repositories';
import { EmailService } from '@app/common/util/email.service';
import { PasswordEncryptionService } from 'src/door-lock/services/encryption.services';
import { DoorLockModule } from 'src/door-lock/door.lock.module';
import { DeviceService } from 'src/device/services';
import { ProductRepository } from '@app/common/modules/product/repositories';
import { DeviceStatusFirebaseService } from '@app/common/firebase/devices-status/services/devices-status.service';
import { SpaceRepository } from '@app/common/modules/space/repositories';
import { VisitorPasswordRepository } from '@app/common/modules/visitor-password/repositories';
import { DeviceStatusLogRepository } from '@app/common/modules/device-status-log/repositories';
import { AqiDataService } from '@app/common/helper/services/aqi.data.service';
import { OccupancyService } from '@app/common/helper/services/occupancy.service';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import { SqlLoaderService } from '@app/common/helper/services/sql-loader.service';
import { TuyaService } from '@app/common/integrations/tuya/services/tuya.service';
import { SceneService } from 'src/scene/services';
import { AqiSpaceDailyPollutantStatsRepository } from '@app/common/modules/aqi/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { CommunityRepository } from '@app/common/modules/community/repositories';
import { DeviceRepositoryModule } from '@app/common/modules/device';
import { DeviceStatusLogRepository } from '@app/common/modules/device-status-log/repositories';
import { DeviceRepository } from '@app/common/modules/device/repositories';
import {
PowerClampDailyRepository,
PowerClampHourlyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
import { PresenceSensorDailySpaceRepository } from '@app/common/modules/presence-sensor/repositories';
import { ProductRepository } from '@app/common/modules/product/repositories';
import { ProjectRepository } from '@app/common/modules/project/repositiories';
import { SceneDeviceRepository } from '@app/common/modules/scene-device/repositories';
import {
SceneIconRepository,
SceneRepository,
} from '@app/common/modules/scene/repositories';
import { SceneDeviceRepository } from '@app/common/modules/scene-device/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { ProjectRepository } from '@app/common/modules/project/repositiories';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
import { SqlLoaderService } from '@app/common/helper/services/sql-loader.service';
import { OccupancyService } from '@app/common/helper/services/occupancy.service';
import { CommunityRepository } from '@app/common/modules/community/repositories';
import { AqiDataService } from '@app/common/helper/services/aqi.data.service';
import { PresenceSensorDailySpaceRepository } from '@app/common/modules/presence-sensor/repositories';
import { AqiSpaceDailyPollutantStatsRepository } from '@app/common/modules/aqi/repositories';
import { SpaceRepository } from '@app/common/modules/space/repositories';
import { VisitorPasswordRepository } from '@app/common/modules/visitor-password/repositories';
import { EmailService } from '@app/common/util/email/email.service';
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { DeviceService } from 'src/device/services';
import { DoorLockModule } from 'src/door-lock/door.lock.module';
import { PasswordEncryptionService } from 'src/door-lock/services/encryption.services';
import { SceneService } from 'src/scene/services';
import { VisitorPasswordController } from './controllers/visitor-password.controller';
import { VisitorPasswordService } from './services/visitor-password.service';
@Module({
imports: [ConfigModule, DeviceRepositoryModule, DoorLockModule],
controllers: [VisitorPasswordController],