mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 18:27:05 +00:00
added the relation between models and space
This commit is contained in:
@ -11,6 +11,7 @@ import { SpaceModelDto } from '../dtos';
|
|||||||
import { SubspaceModelEntity } from './subspace-model.entity';
|
import { SubspaceModelEntity } from './subspace-model.entity';
|
||||||
import { SpaceProductModelEntity } from './space-product-model.entity';
|
import { SpaceProductModelEntity } from './space-product-model.entity';
|
||||||
import { ProjectEntity } from '../../project/entities';
|
import { ProjectEntity } from '../../project/entities';
|
||||||
|
import { SpaceEntity } from '../../space/entities';
|
||||||
|
|
||||||
@Entity({ name: 'space-model' })
|
@Entity({ name: 'space-model' })
|
||||||
@Unique(['modelName', 'project'])
|
@Unique(['modelName', 'project'])
|
||||||
@ -53,4 +54,9 @@ export class SpaceModelEntity extends AbstractEntity<SpaceModelDto> {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
public spaceProductModels: SpaceProductModelEntity[];
|
public spaceProductModels: SpaceProductModelEntity[];
|
||||||
|
|
||||||
|
@OneToMany(() => SpaceEntity, (space) => space.spaceModel, {
|
||||||
|
cascade: true,
|
||||||
|
})
|
||||||
|
public spaces: SpaceEntity[];
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { Entity, Column, ManyToOne } from 'typeorm';
|
import { Entity, Column, ManyToOne, OneToMany } from 'typeorm';
|
||||||
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||||
import { SpaceProductItemModelDto } from '../dtos';
|
import { SpaceProductItemModelDto } from '../dtos';
|
||||||
import { SpaceProductModelEntity } from './space-product-model.entity';
|
import { SpaceProductModelEntity } from './space-product-model.entity';
|
||||||
|
import { SpaceProductItemEntity } from '../../space/entities';
|
||||||
|
|
||||||
@Entity({ name: 'space-product-item-model' })
|
@Entity({ name: 'space-product-item-model' })
|
||||||
export class SpaceProductItemModelEntity extends AbstractEntity<SpaceProductItemModelDto> {
|
export class SpaceProductItemModelEntity extends AbstractEntity<SpaceProductItemModelDto> {
|
||||||
@ -18,4 +19,11 @@ export class SpaceProductItemModelEntity extends AbstractEntity<SpaceProductItem
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
public spaceProductModel: SpaceProductModelEntity;
|
public spaceProductModel: SpaceProductModelEntity;
|
||||||
|
|
||||||
|
@OneToMany(
|
||||||
|
() => SpaceProductItemEntity,
|
||||||
|
(spaceProductItem) => spaceProductItem.spaceProductItemModel,
|
||||||
|
{ cascade: true },
|
||||||
|
)
|
||||||
|
public items: SpaceProductItemEntity[];
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import { ProductEntity } from '../../product/entities';
|
|||||||
import { SpaceModelEntity } from './space-model.entity';
|
import { SpaceModelEntity } from './space-model.entity';
|
||||||
import { SpaceProductItemModelEntity } from './space-product-item.entity';
|
import { SpaceProductItemModelEntity } from './space-product-item.entity';
|
||||||
import { SpaceProductModelDto } from '../dtos';
|
import { SpaceProductModelDto } from '../dtos';
|
||||||
|
import { SpaceProductEntity } from '../../space/entities';
|
||||||
|
|
||||||
@Entity({ name: 'space-product-model' })
|
@Entity({ name: 'space-product-model' })
|
||||||
export class SpaceProductModelEntity extends AbstractEntity<SpaceProductModelDto> {
|
export class SpaceProductModelEntity extends AbstractEntity<SpaceProductModelDto> {
|
||||||
@ -37,4 +38,13 @@ export class SpaceProductModelEntity extends AbstractEntity<SpaceProductModelDto
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
public items: SpaceProductItemModelEntity[];
|
public items: SpaceProductItemModelEntity[];
|
||||||
|
|
||||||
|
@OneToMany(
|
||||||
|
() => SpaceProductEntity,
|
||||||
|
(spaceProduct) => spaceProduct.spaceProductModel,
|
||||||
|
{
|
||||||
|
cascade: true,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
public spaceProducts: SpaceProductEntity[];
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { Column, Entity, ManyToOne, Unique } from 'typeorm';
|
import { Column, Entity, ManyToOne, OneToMany, Unique } from 'typeorm';
|
||||||
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||||
import { SpaceModelEntity } from './space-model.entity';
|
import { SpaceModelEntity } from './space-model.entity';
|
||||||
import { SubSpaceModelDto } from '../dtos';
|
import { SubSpaceModelDto } from '../dtos';
|
||||||
|
import { SubspaceEntity } from '../../space/entities';
|
||||||
|
|
||||||
@Entity({ name: 'subspace-model' })
|
@Entity({ name: 'subspace-model' })
|
||||||
@Unique(['subspaceName', 'spaceModel'])
|
@Unique(['subspaceName', 'spaceModel'])
|
||||||
@ -27,4 +28,9 @@ export class SubspaceModelEntity extends AbstractEntity<SubSpaceModelDto> {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
public spaceModel: SpaceModelEntity;
|
public spaceModel: SpaceModelEntity;
|
||||||
|
|
||||||
|
@OneToMany(() => SubspaceEntity, (space) => space.subSpaceModel, {
|
||||||
|
cascade: true,
|
||||||
|
})
|
||||||
|
public spaces: SubspaceEntity[];
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ import { Column, Entity, ManyToOne } from 'typeorm';
|
|||||||
import { SpaceProductEntity } from './space-product.entity';
|
import { SpaceProductEntity } from './space-product.entity';
|
||||||
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||||
import { SpaceProductItemDto } from '../dtos';
|
import { SpaceProductItemDto } from '../dtos';
|
||||||
|
import { SpaceProductItemModelEntity } from '../../space-model';
|
||||||
|
|
||||||
@Entity({ name: 'space-product-item-model' })
|
@Entity({ name: 'space-product-item-model' })
|
||||||
export class SpaceProductItemEntity extends AbstractEntity<SpaceProductItemDto> {
|
export class SpaceProductItemEntity extends AbstractEntity<SpaceProductItemDto> {
|
||||||
@ -14,4 +15,14 @@ export class SpaceProductItemEntity extends AbstractEntity<SpaceProductItemDto>
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
})
|
})
|
||||||
public spaceProducts: SpaceProductEntity;
|
public spaceProducts: SpaceProductEntity;
|
||||||
|
|
||||||
|
@ManyToOne(
|
||||||
|
() => SpaceProductItemModelEntity,
|
||||||
|
(spaceProductItemModel) => spaceProductItemModel.items,
|
||||||
|
{
|
||||||
|
nullable: true,
|
||||||
|
onDelete: 'SET NULL',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
public spaceProductItemModel?: SpaceProductItemModelEntity;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ import { SpaceEntity } from './space.entity';
|
|||||||
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||||
import { ProductEntity } from '../../product/entities';
|
import { ProductEntity } from '../../product/entities';
|
||||||
import { SpaceProductItemEntity } from './space-product-item.entity';
|
import { SpaceProductItemEntity } from './space-product-item.entity';
|
||||||
|
import { SpaceProductModelEntity } from '../../space-model';
|
||||||
|
|
||||||
@Entity({ name: 'space-product' })
|
@Entity({ name: 'space-product' })
|
||||||
export class SpaceProductEntity extends AbstractEntity<SpaceProductEntity> {
|
export class SpaceProductEntity extends AbstractEntity<SpaceProductEntity> {
|
||||||
@ -31,6 +32,16 @@ export class SpaceProductEntity extends AbstractEntity<SpaceProductEntity> {
|
|||||||
})
|
})
|
||||||
public items: SpaceProductItemEntity[];
|
public items: SpaceProductItemEntity[];
|
||||||
|
|
||||||
|
@ManyToOne(
|
||||||
|
() => SpaceProductModelEntity,
|
||||||
|
(spaceProductModel) => spaceProductModel.spaceProducts,
|
||||||
|
{
|
||||||
|
nullable: true,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
@JoinColumn({ name: 'space_product_model_uuid' })
|
||||||
|
public spaceProductModel?: SpaceProductModelEntity;
|
||||||
|
|
||||||
constructor(partial: Partial<SpaceProductEntity>) {
|
constructor(partial: Partial<SpaceProductEntity>) {
|
||||||
super();
|
super();
|
||||||
Object.assign(this, partial);
|
Object.assign(this, partial);
|
||||||
|
@ -15,6 +15,7 @@ import { SubspaceEntity } from './subspace.entity';
|
|||||||
import { SpaceLinkEntity } from './space-link.entity';
|
import { SpaceLinkEntity } from './space-link.entity';
|
||||||
import { SpaceProductEntity } from './space-product.entity';
|
import { SpaceProductEntity } from './space-product.entity';
|
||||||
import { SceneEntity } from '../../scene/entities';
|
import { SceneEntity } from '../../scene/entities';
|
||||||
|
import { SpaceModelEntity } from '../../space-model';
|
||||||
|
|
||||||
@Entity({ name: 'space' })
|
@Entity({ name: 'space' })
|
||||||
@Unique(['invitationCode'])
|
@Unique(['invitationCode'])
|
||||||
@ -98,6 +99,10 @@ export class SpaceEntity extends AbstractEntity<SpaceDto> {
|
|||||||
@OneToMany(() => SceneEntity, (scene) => scene.space)
|
@OneToMany(() => SceneEntity, (scene) => scene.space)
|
||||||
scenes: SceneEntity[];
|
scenes: SceneEntity[];
|
||||||
|
|
||||||
|
@ManyToOne(() => SpaceModelEntity, { nullable: true })
|
||||||
|
@JoinColumn({ name: 'space_model_uuid' })
|
||||||
|
spaceModel?: SpaceModelEntity;
|
||||||
|
|
||||||
constructor(partial: Partial<SpaceEntity>) {
|
constructor(partial: Partial<SpaceEntity>) {
|
||||||
super();
|
super();
|
||||||
Object.assign(this, partial);
|
Object.assign(this, partial);
|
||||||
|
@ -3,6 +3,7 @@ import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
|||||||
import { DeviceEntity } from '../../device/entities';
|
import { DeviceEntity } from '../../device/entities';
|
||||||
import { SpaceEntity } from './space.entity';
|
import { SpaceEntity } from './space.entity';
|
||||||
import { SubspaceDto } from '../dtos';
|
import { SubspaceDto } from '../dtos';
|
||||||
|
import { SubspaceModelEntity } from '../../space-model';
|
||||||
|
|
||||||
@Entity({ name: 'subspace' })
|
@Entity({ name: 'subspace' })
|
||||||
export class SubspaceEntity extends AbstractEntity<SubspaceDto> {
|
export class SubspaceEntity extends AbstractEntity<SubspaceDto> {
|
||||||
@ -30,6 +31,10 @@ export class SubspaceEntity extends AbstractEntity<SubspaceDto> {
|
|||||||
})
|
})
|
||||||
devices: DeviceEntity[];
|
devices: DeviceEntity[];
|
||||||
|
|
||||||
|
@ManyToOne(() => SubspaceModelEntity, { nullable: true })
|
||||||
|
@JoinColumn({ name: 'subspace_model_uuid' })
|
||||||
|
subSpaceModel?: SubspaceModelEntity;
|
||||||
|
|
||||||
constructor(partial: Partial<SubspaceEntity>) {
|
constructor(partial: Partial<SubspaceEntity>) {
|
||||||
super();
|
super();
|
||||||
Object.assign(this, partial);
|
Object.assign(this, partial);
|
||||||
|
Reference in New Issue
Block a user