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; }