diff --git a/src/game/coordinate.entity.ts b/src/game/coordinate.entity.ts index 851bb65c1b23ad74c06b2eb479710f5d121b08fa..f1a2eff7aec47529eaa11b5de982d871b2533c05 100644 --- a/src/game/coordinate.entity.ts +++ b/src/game/coordinate.entity.ts @@ -2,21 +2,27 @@ import { Entity, Column, PrimaryGeneratedColumn, + OneToMany, ManyToOne, + PrimaryColumn, Timestamp, } from 'typeorm'; -import { GameEntity, Game_PersonEntity } from './game.entity'; +import { + Game_PersonEntity, + ObjectivePointEntity, + GameEntity, +} from './game.entity'; import { FactionEntity } from './faction.entity'; @Entity('MapDrawing') export class MapDrawingEntity { @PrimaryGeneratedColumn('uuid') mapDrawingId: string; - @Column({ type: 'bool' }) drawingIsActive: boolean; - @Column({ type: 'time' }) drawingValidTill: string; + @Column({ type: 'bool', nullable: true }) drawingIsActive: boolean; + @Column({ type: 'time', nullable: true }) drawingValidTill: string; @Column({ type: 'json', nullable: true }) data: JSON; - @ManyToOne(type => FactionEntity, faction => faction.factionId) + @ManyToOne(type => FactionEntity, faction => faction.mapDrawings) faction: FactionEntity; @ManyToOne(type => GameEntity, gameEntity => gameEntity.id) gameId: GameEntity; diff --git a/src/game/faction.entity.ts b/src/game/faction.entity.ts index 4c15c865dd9cc2357412c1c106858c24cb67ae94..b8ce81638c9da3aac01a53dc12c0235f47b933d7 100644 --- a/src/game/faction.entity.ts +++ b/src/game/faction.entity.ts @@ -8,6 +8,7 @@ import { } from 'typeorm'; import { GameEntity } from './game.entity'; import { Game_PersonEntity } from './game.entity'; +import { MapDrawingEntity } from './coordinate.entity'; //Faction, PowerUp, Faction_powerUp, FP_History, Score @@ -22,6 +23,13 @@ export class FactionEntity { game_persons: Game_PersonEntity[]; @ManyToOne(type => GameEntity, game => game.id) gameId: GameEntity; + @OneToMany(type => MapDrawingEntity, mapDrawings => mapDrawings.faction) + mapDrawings: MapDrawingEntity[]; + + factionObject() { + const { factionId, factionName, gameId } = this; + return { factionId, factionName, gameId }; + } } @Entity('PowerUp') diff --git a/src/game/game.entity.ts b/src/game/game.entity.ts index b8bf9ae9c424ae270b624d45d218622f38dc65ee..c4e0424608f55ac282b23271ce154acec6408954 100644 --- a/src/game/game.entity.ts +++ b/src/game/game.entity.ts @@ -29,7 +29,7 @@ export class GameEntity { @Column('timestamp') startdate: Timestamp; @Column('timestamp') enddate: Timestamp; - @OneToMany(type => FactionEntity, factions => factions.factionId) + @OneToMany(type => FactionEntity, factions => factions.gameId) factions: FactionEntity[]; @OneToMany(type => Game_PersonEntity, game_persons => game_persons.game) game_persons: Game_PersonEntity[];