feat: integrate PowerClamp service and repositories across multiple modules

This commit is contained in:
faris Aljohari
2025-04-24 02:14:58 +03:00
parent 531f93d42c
commit 7f43ef5de5
11 changed files with 104 additions and 1 deletions

View File

@ -3,12 +3,22 @@ import { DeviceStatusFirebaseController } from './controllers/devices-status.con
import { DeviceStatusFirebaseService } from './services/devices-status.service';
import { DeviceRepository } from '@app/common/modules/device/repositories';
import { DeviceStatusLogRepository } from '@app/common/modules/device-status-log/repositories/device-status.repository';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
@Module({
providers: [
DeviceStatusFirebaseService,
DeviceRepository,
DeviceStatusLogRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
controllers: [DeviceStatusFirebaseController],
exports: [DeviceStatusFirebaseService, DeviceStatusLogRepository],

View File

@ -1,9 +1,10 @@
import { Column, Entity, ManyToOne } from 'typeorm';
import { Column, Entity, ManyToOne, Unique } from 'typeorm';
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
import { PowerClampDto } from '../dtos';
import { DeviceEntity } from '../../device/entities/device.entity';
@Entity({ name: 'power-clamp-energy-consumed-hourly' })
@Unique(['deviceUuid', 'date', 'hour'])
export class PowerClampHourlyEntity extends AbstractEntity<PowerClampDto> {
@Column({ nullable: false })
public deviceUuid: string;
@ -35,6 +36,7 @@ export class PowerClampHourlyEntity extends AbstractEntity<PowerClampDto> {
}
}
@Entity({ name: 'power-clamp-energy-consumed-daily' })
@Unique(['deviceUuid', 'date'])
export class PowerClampDailyEntity extends AbstractEntity<PowerClampDto> {
@Column({ nullable: false })
public deviceUuid: string;
@ -63,6 +65,7 @@ export class PowerClampDailyEntity extends AbstractEntity<PowerClampDto> {
}
}
@Entity({ name: 'power-clamp-energy-consumed-monthly' })
@Unique(['deviceUuid', 'month'])
export class PowerClampMonthlyEntity extends AbstractEntity<PowerClampDto> {
@Column({ nullable: false })
public deviceUuid: string;

View File

@ -21,6 +21,12 @@ import {
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { CommunityRepository } from '@app/common/modules/community/repositories';
import { SubspaceRepository } from '@app/common/modules/space/repositories/subspace.repository';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
@Module({
imports: [ConfigModule, SpaceRepositoryModule],
@ -43,6 +49,10 @@ import { SubspaceRepository } from '@app/common/modules/space/repositories/subsp
AutomationRepository,
CommunityRepository,
SubspaceRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [],
})

View File

@ -56,6 +56,12 @@ import {
SceneRepository,
} from '@app/common/modules/scene/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
@Module({
imports: [ConfigModule, SpaceRepositoryModule, UserRepositoryModule],
@ -102,6 +108,10 @@ import { AutomationRepository } from '@app/common/modules/automation/repositorie
SceneIconRepository,
SceneRepository,
AutomationRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [CommunityService, SpacePermissionService],
})

View File

@ -20,6 +20,12 @@ import {
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';
@Module({
imports: [ConfigModule, DeviceRepositoryModule],
controllers: [DoorLockController],
@ -40,6 +46,10 @@ import { ProjectRepository } from '@app/common/modules/project/repositiories';
SceneRepository,
SceneDeviceRepository,
AutomationRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [DoorLockService],
})

View File

@ -18,6 +18,12 @@ import {
SceneRepository,
} from '@app/common/modules/scene/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
@Module({
imports: [ConfigModule, DeviceRepositoryModule],
controllers: [GroupController],
@ -37,6 +43,10 @@ import { AutomationRepository } from '@app/common/modules/automation/repositorie
SceneIconRepository,
SceneRepository,
AutomationRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [GroupService],
})

View File

@ -76,6 +76,12 @@ import {
SceneRepository,
} from '@app/common/modules/scene/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
@Module({
imports: [ConfigModule, InviteUserRepositoryModule, CommunityModule],
@ -140,6 +146,10 @@ import { AutomationRepository } from '@app/common/modules/automation/repositorie
SceneIconRepository,
SceneRepository,
AutomationRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [InviteUserService],
})

View File

@ -60,6 +60,12 @@ import {
SceneRepository,
} from '@app/common/modules/scene/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampDailyRepository,
PowerClampHourlyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
const CommandHandlers = [CreateOrphanSpaceHandler];
@ -112,6 +118,10 @@ const CommandHandlers = [CreateOrphanSpaceHandler];
SceneRepository,
AutomationRepository,
SubspaceModelProductAllocationRepoitory,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [ProjectService, CqrsModule],
})

View File

@ -58,6 +58,12 @@ import {
} from '@app/common/modules/scene/repositories';
import { AutomationRepository } from '@app/common/modules/automation/repositories';
import { CommunityModule } from 'src/community/community.module';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
const CommandHandlers = [
PropogateUpdateSpaceModelHandler,
@ -112,6 +118,10 @@ const CommandHandlers = [
SpaceProductAllocationRepository,
SubspaceProductAllocationRepository,
SubSpaceService,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [CqrsModule, SpaceModelService],
})

View File

@ -83,6 +83,12 @@ import { SubspaceModelProductAllocationService } from 'src/space-model/services/
import { SpaceProductAllocationService } from './services/space-product-allocation.service';
import { SubspaceProductAllocationService } from './services/subspace/subspace-product-allocation.service';
import { SpaceValidationController } from './controllers/space-validation.controller';
import { PowerClampService } from '@app/common/helper/services/power.clamp.service';
import {
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
} from '@app/common/modules/power-clamp/repositories';
export const CommandHandlers = [DisableSpaceHandler];
@ -154,6 +160,10 @@ export const CommandHandlers = [DisableSpaceHandler];
SubspaceProductAllocationService,
SpaceProductAllocationRepository,
SubspaceProductAllocationRepository,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
PowerClampService,
],
exports: [SpaceService],
})

View File

@ -22,6 +22,12 @@ import {
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';
@Module({
imports: [ConfigModule, DeviceRepositoryModule, DoorLockModule],
controllers: [VisitorPasswordController],
@ -43,6 +49,10 @@ import { ProjectRepository } from '@app/common/modules/project/repositiories';
SceneDeviceRepository,
AutomationRepository,
ProjectRepository,
PowerClampService,
PowerClampHourlyRepository,
PowerClampDailyRepository,
PowerClampMonthlyRepository,
],
exports: [VisitorPasswordService],
})