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,39 @@
import {
Column,
Entity,
Index,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
} from 'typeorm';
import { Character } from '../../characters/entities/character.entity';
import { RenownMilestoneDefinition } from './renown-milestone-definition.entity';
@Entity({ name: 'character_renown_milestones' })
@Index('IDX_character_renown_milestones_character_milestone', ['characterId', 'milestoneId'], {
unique: true,
})
export class CharacterRenownMilestone {
@PrimaryGeneratedColumn('uuid', { name: 'id' })
id!: string;
@Column({ name: 'character_id', type: 'uuid' })
characterId!: string;
@Column({ name: 'milestone_id', type: 'uuid' })
milestoneId!: string;
@Column({ name: 'completed_at', type: 'timestamptz' })
completedAt!: Date;
@Column({ name: 'times_completed', type: 'integer' })
timesCompleted!: number;
@ManyToOne(() => Character, { onDelete: 'CASCADE' })
@JoinColumn({ name: 'character_id' })
character!: Character;
@ManyToOne(() => RenownMilestoneDefinition, { onDelete: 'RESTRICT' })
@JoinColumn({ name: 'milestone_id' })
milestone!: RenownMilestoneDefinition;
}