feat(renown): add Reputation/Renown/TurnIn entities and update Character/ItemDefinition/CombatReward

This commit is contained in:
Bastian Wagner
2026-08-21 09:03:37 +02:00
parent 3662029ec9
commit 4fa1923525
10 changed files with 289 additions and 14 deletions

View File

@@ -0,0 +1,44 @@
import {
Column,
CreateDateColumn,
Entity,
Index,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from 'typeorm';
import { Character } from '../../characters/entities/character.entity';
import { ReputationFaction } from './reputation-faction.entity';
@Entity({ name: 'character_reputation' })
@Index('IDX_character_reputation_character_faction', ['characterId', 'factionId'], {
unique: true,
})
export class CharacterReputation {
@PrimaryGeneratedColumn('uuid', { name: 'id' })
id!: string;
@Column({ name: 'character_id', type: 'uuid' })
characterId!: string;
@Column({ name: 'faction_id', type: 'uuid' })
factionId!: string;
@Column({ name: 'reputation', type: 'integer' })
reputation!: number;
@CreateDateColumn({ name: 'created_at', type: 'timestamptz' })
createdAt!: Date;
@UpdateDateColumn({ name: 'updated_at', type: 'timestamptz' })
updatedAt!: Date;
@ManyToOne(() => Character, { onDelete: 'CASCADE' })
@JoinColumn({ name: 'character_id' })
character!: Character;
@ManyToOne(() => ReputationFaction, { onDelete: 'RESTRICT' })
@JoinColumn({ name: 'faction_id' })
faction!: ReputationFaction;
}

View File

@@ -0,0 +1,36 @@
import {
Column,
CreateDateColumn,
Entity,
Index,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from 'typeorm';
@Entity({ name: 'reputation_factions' })
@Index('IDX_reputation_factions_key', ['key'], { unique: true })
export class ReputationFaction {
@PrimaryGeneratedColumn('uuid', { name: 'id' })
id!: string;
@Column({ name: 'key', type: 'varchar', length: 100 })
key!: string;
@Column({ name: 'name', type: 'varchar', length: 150 })
name!: string;
@Column({ name: 'description', type: 'text' })
description!: string;
@Column({ name: 'region_key', type: 'varchar', length: 100 })
regionKey!: string;
@Column({ name: 'enabled', type: 'boolean' })
enabled!: boolean;
@CreateDateColumn({ name: 'created_at', type: 'timestamptz' })
createdAt!: Date;
@UpdateDateColumn({ name: 'updated_at', type: 'timestamptz' })
updatedAt!: Date;
}