mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 21:24:53 +00:00
Added space product relation
This commit is contained in:
@ -23,6 +23,7 @@ import { CommunityEntity } from '../modules/community/entities';
|
|||||||
import { DeviceStatusLogEntity } from '../modules/device-status-log/entities';
|
import { DeviceStatusLogEntity } from '../modules/device-status-log/entities';
|
||||||
import { SceneEntity, SceneIconEntity } from '../modules/scene/entities';
|
import { SceneEntity, SceneIconEntity } from '../modules/scene/entities';
|
||||||
import { SceneDeviceEntity } from '../modules/scene-device/entities';
|
import { SceneDeviceEntity } from '../modules/scene-device/entities';
|
||||||
|
import { SpaceProductEntity } from '../modules/space/entities/space-product.entity';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@ -49,6 +50,7 @@ import { SceneDeviceEntity } from '../modules/scene-device/entities';
|
|||||||
SpaceEntity,
|
SpaceEntity,
|
||||||
SubspaceEntity,
|
SubspaceEntity,
|
||||||
SpaceTypeEntity,
|
SpaceTypeEntity,
|
||||||
|
SpaceProductEntity,
|
||||||
UserSpaceEntity,
|
UserSpaceEntity,
|
||||||
DeviceUserPermissionEntity,
|
DeviceUserPermissionEntity,
|
||||||
UserRoleEntity,
|
UserRoleEntity,
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { Column, Entity, OneToMany } from 'typeorm';
|
|||||||
import { ProductDto } from '../dtos';
|
import { ProductDto } from '../dtos';
|
||||||
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||||
import { DeviceEntity } from '../../device/entities';
|
import { DeviceEntity } from '../../device/entities';
|
||||||
|
import { SpaceProductEntity } from '../../space/entities/space-product.entity';
|
||||||
|
|
||||||
@Entity({ name: 'product' })
|
@Entity({ name: 'product' })
|
||||||
export class ProductEntity extends AbstractEntity<ProductDto> {
|
export class ProductEntity extends AbstractEntity<ProductDto> {
|
||||||
@ -21,6 +22,9 @@ export class ProductEntity extends AbstractEntity<ProductDto> {
|
|||||||
})
|
})
|
||||||
public prodType: string;
|
public prodType: string;
|
||||||
|
|
||||||
|
@OneToMany(() => SpaceProductEntity, (spaceProduct) => spaceProduct.product)
|
||||||
|
spaceProducts: SpaceProductEntity[];
|
||||||
|
|
||||||
@OneToMany(
|
@OneToMany(
|
||||||
() => DeviceEntity,
|
() => DeviceEntity,
|
||||||
(devicesProductEntity) => devicesProductEntity.productDevice,
|
(devicesProductEntity) => devicesProductEntity.productDevice,
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
import { Column, Entity, ManyToOne, JoinColumn } from 'typeorm';
|
||||||
|
import { SpaceEntity } from './space.entity';
|
||||||
|
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||||
|
import { ProductEntity } from '../../product/entities';
|
||||||
|
|
||||||
|
@Entity({ name: 'space-product' })
|
||||||
|
export class SpaceProductEntity extends AbstractEntity<SpaceProductEntity> {
|
||||||
|
@ManyToOne(() => SpaceEntity, (space) => space.spaceProducts, {
|
||||||
|
nullable: false,
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
})
|
||||||
|
@JoinColumn({ name: 'space_id' })
|
||||||
|
space: SpaceEntity;
|
||||||
|
|
||||||
|
@ManyToOne(() => ProductEntity, (product) => product.spaceProducts, {
|
||||||
|
nullable: false,
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
})
|
||||||
|
@JoinColumn({ name: 'product_id' })
|
||||||
|
product: ProductEntity;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: false,
|
||||||
|
type: 'int',
|
||||||
|
})
|
||||||
|
productCount: number;
|
||||||
|
|
||||||
|
constructor(partial: Partial<SpaceProductEntity>) {
|
||||||
|
super();
|
||||||
|
Object.assign(this, partial);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -12,6 +12,7 @@ import { UserSpaceEntity } from '../../user/entities';
|
|||||||
import { DeviceEntity } from '../../device/entities';
|
import { DeviceEntity } from '../../device/entities';
|
||||||
import { CommunityEntity } from '../../community/entities';
|
import { CommunityEntity } from '../../community/entities';
|
||||||
import { SubspaceEntity } from './subspace.entity';
|
import { SubspaceEntity } from './subspace.entity';
|
||||||
|
import { SpaceProductEntity } from './space-product.entity';
|
||||||
|
|
||||||
@Entity({ name: 'space-type' })
|
@Entity({ name: 'space-type' })
|
||||||
export class SpaceTypeEntity extends AbstractEntity<SpaceTypeDto> {
|
export class SpaceTypeEntity extends AbstractEntity<SpaceTypeDto> {
|
||||||
@ -83,6 +84,9 @@ export class SpaceEntity extends AbstractEntity<SpaceDto> {
|
|||||||
)
|
)
|
||||||
devices: DeviceEntity[];
|
devices: DeviceEntity[];
|
||||||
|
|
||||||
|
@OneToMany(() => SpaceProductEntity, (spaceProduct) => spaceProduct.space)
|
||||||
|
spaceProducts: SpaceProductEntity[];
|
||||||
|
|
||||||
constructor(partial: Partial<SpaceEntity>) {
|
constructor(partial: Partial<SpaceEntity>) {
|
||||||
super();
|
super();
|
||||||
Object.assign(this, partial);
|
Object.assign(this, partial);
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { DataSource, Repository } from 'typeorm';
|
import { DataSource, Repository } from 'typeorm';
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { SpaceEntity, SpaceTypeEntity, SubspaceEntity } from '../entities';
|
import { SpaceEntity, SpaceTypeEntity, SubspaceEntity } from '../entities';
|
||||||
|
import { SpaceProductEntity } from '../entities/space-product.entity';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class SpaceRepository extends Repository<SpaceEntity> {
|
export class SpaceRepository extends Repository<SpaceEntity> {
|
||||||
@ -22,3 +23,10 @@ export class SubspaceRepository extends Repository<SubspaceEntity> {
|
|||||||
super(SubspaceEntity, dataSource.createEntityManager());
|
super(SubspaceEntity, dataSource.createEntityManager());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class SpaceProductRepository extends Repository<SpaceProductEntity> {
|
||||||
|
constructor(private dataSource: DataSource) {
|
||||||
|
super(SpaceProductEntity, dataSource.createEntityManager());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user