1
0
forked from noxious/server

Added update & delete rules to entities

This commit is contained in:
2025-01-01 20:44:36 +01:00
parent 11d30351ba
commit 465219276d
16 changed files with 66 additions and 114 deletions

View File

@ -32,7 +32,7 @@ export class Character extends BaseEntity {
// Position
@ManyToOne()
zone!: Zone
zone!: Zone // @TODO: Update to spawn point when current zone is not found
@Property()
positionX = 0
@ -44,10 +44,10 @@ export class Character extends BaseEntity {
rotation = 0
// Customization
@ManyToOne()
@ManyToOne({ deleteRule: 'set null' })
characterType?: CharacterType | null | undefined
@ManyToOne()
@ManyToOne({ deleteRule: 'set null' })
characterHair?: CharacterHair | null | undefined
// Inventory

View File

@ -14,10 +14,10 @@ export class CharacterEquipment extends BaseEntity {
@Enum(() => CharacterEquipmentSlotType)
slot!: CharacterEquipmentSlotType
@ManyToOne(() => Character)
@ManyToOne({ deleteRule: 'cascade' })
character!: Character
@ManyToOne(() => CharacterItem)
@ManyToOne({ deleteRule: 'cascade' })
characterItem!: CharacterItem
setId(id: number) {

View File

@ -20,12 +20,9 @@ export class CharacterHair extends BaseEntity {
@Property()
isSelectable = false
@ManyToOne(() => Sprite, { nullable: true })
@ManyToOne({ nullable: true })
sprite?: Sprite
@OneToMany(() => Character, (character) => character.characterHair)
characters = new Collection<Character>(this)
setId(id: number) {
this.id = id
return this
@ -70,13 +67,4 @@ export class CharacterHair extends BaseEntity {
getSprite() {
return this.sprite
}
setCharacters(characters: Collection<Character>) {
this.characters = characters
return this
}
getCharacters() {
return this.characters
}
}

View File

@ -11,18 +11,15 @@ export class CharacterItem extends BaseEntity {
@PrimaryKey()
id!: number
@ManyToOne(() => Character)
@ManyToOne({ deleteRule: 'cascade' })
character!: Character
@ManyToOne(() => Item)
@ManyToOne({ deleteRule: 'cascade' })
item!: Item
@Property()
quantity!: number
@OneToMany(() => CharacterEquipment, (equipment) => equipment.characterItem)
characterEquipment = new Collection<CharacterEquipment>(this)
setId(id: number) {
this.id = id
return this
@ -58,13 +55,4 @@ export class CharacterItem extends BaseEntity {
getQuantity() {
return this.quantity
}
setCharacterEquipment(characterEquipment: Collection<CharacterEquipment>) {
this.characterEquipment = characterEquipment
return this
}
getCharacterEquipment() {
return this.characterEquipment
}
}

View File

@ -10,10 +10,10 @@ export class Chat extends BaseEntity {
@PrimaryKey()
id!: number
@ManyToOne(() => Character)
@ManyToOne({ deleteRule: 'cascade' })
character!: Character
@ManyToOne(() => Zone)
@ManyToOne({ deleteRule: 'cascade' })
zone!: Zone
@Property()

View File

@ -38,9 +38,6 @@ export class Item extends BaseEntity {
@Property()
updatedAt = new Date()
@OneToMany(() => CharacterItem, (characterItem) => characterItem.item)
characters = new Collection<CharacterItem>(this)
setId(id: UUID) {
this.id = id
return this
@ -121,13 +118,4 @@ export class Item extends BaseEntity {
getUpdatedAt() {
return this.updatedAt
}
setCharacters(characters: Collection<CharacterItem>) {
this.characters = characters
return this
}
getCharacters() {
return this.characters
}
}

View File

@ -42,9 +42,6 @@ export class MapObject extends BaseEntity {
@Property()
updatedAt = new Date()
@OneToMany(() => ZoneObject, (zoneObject) => zoneObject.mapObject)
zoneObjects = new Collection<ZoneObject>(this)
setId(id: UUID) {
this.id = id
return this
@ -143,13 +140,4 @@ export class MapObject extends BaseEntity {
getUpdatedAt() {
return this.updatedAt
}
setZoneObjects(zoneObjects: Collection<ZoneObject>) {
this.zoneObjects = zoneObjects
return this
}
getZoneObjects() {
return this.zoneObjects
}
}

View File

@ -9,7 +9,7 @@ export class PasswordResetToken extends BaseEntity {
@PrimaryKey()
id!: number
@ManyToOne(() => User)
@ManyToOne({ deleteRule: 'cascade' })
user!: User
@Property({ unique: true })

View File

@ -12,7 +12,7 @@ export class SpriteAction extends BaseEntity {
@PrimaryKey()
id = randomUUID()
@ManyToOne(() => Sprite)
@ManyToOne({ deleteRule: 'cascade' })
sprite!: Sprite
@Property()

View File

@ -29,6 +29,12 @@ export class Zone extends BaseEntity {
@Property()
pvp = false
@Property()
createdAt = new Date()
@Property()
updatedAt = new Date()
@OneToMany(() => ZoneEffect, (effect) => effect.zone)
zoneEffects = new Collection<ZoneEffect>(this)
@ -47,12 +53,6 @@ export class Zone extends BaseEntity {
@OneToMany(() => Chat, (chat) => chat.zone)
chats = new Collection<Chat>(this)
@Property()
createdAt = new Date()
@Property()
updatedAt = new Date()
setId(id: number) {
this.id = id
return this
@ -107,6 +107,24 @@ export class Zone extends BaseEntity {
return this.pvp
}
setCreatedAt(createdAt: Date) {
this.createdAt = createdAt
return this
}
getCreatedAt() {
return this.createdAt
}
setUpdatedAt(updatedAt: Date) {
this.updatedAt = updatedAt
return this
}
getUpdatedAt() {
return this.updatedAt
}
setZoneEffects(zoneEffects: Collection<ZoneEffect>) {
this.zoneEffects = zoneEffects
return this
@ -160,22 +178,4 @@ export class Zone extends BaseEntity {
getChats() {
return this.chats
}
setCreatedAt(createdAt: Date) {
this.createdAt = createdAt
return this
}
getCreatedAt() {
return this.createdAt
}
setUpdatedAt(updatedAt: Date) {
this.updatedAt = updatedAt
return this
}
getUpdatedAt() {
return this.updatedAt
}
}

View File

@ -12,7 +12,7 @@ export class ZoneEffect extends BaseEntity {
@PrimaryKey()
id = randomUUID()
@ManyToOne(() => Zone)
@ManyToOne({ deleteRule: 'cascade' })
zone!: Zone
@Property()

View File

@ -14,7 +14,7 @@ export class ZoneEventTile extends BaseEntity {
@PrimaryKey()
id = randomUUID()
@ManyToOne(() => Zone)
@ManyToOne({ deleteRule: 'cascade' })
zone!: Zone
@Enum(() => ZoneEventTileType)

View File

@ -13,10 +13,10 @@ export class ZoneEventTileTeleport extends BaseEntity {
@PrimaryKey()
id = randomUUID()
@OneToOne(() => ZoneEventTile)
@OneToOne({ deleteRule: 'cascade' })
zoneEventTile!: ZoneEventTile
@ManyToOne(() => Zone)
@ManyToOne({ deleteRule: 'cascade' })
toZone!: Zone
@Property()

View File

@ -14,10 +14,10 @@ export class ZoneObject extends BaseEntity {
@PrimaryKey()
id = randomUUID()
@ManyToOne(() => Zone)
@ManyToOne({ deleteRule: 'cascade' })
zone!: Zone
@ManyToOne(() => MapObject)
@ManyToOne({ deleteRule: 'cascade' })
mapObject!: MapObject
@Property()