import { Column, CreateDateColumn, Entity, Index, JoinColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import { ItemDefinition } from '../../items/entities/item-definition.entity'; import { ReputationFaction } from '../../reputation/entities/reputation-faction.entity'; @Entity({ name: 'turn_in_definitions' }) @Index('IDX_turn_in_definitions_key', ['key'], { unique: true }) export class TurnInDefinition { @PrimaryGeneratedColumn('uuid', { name: 'id' }) id!: string; @Column({ name: 'key', type: 'varchar', length: 100 }) key!: string; @Column({ name: 'item_definition_id', type: 'uuid' }) itemDefinitionId!: string; @Column({ name: 'faction_id', type: 'uuid' }) factionId!: string; @Column({ name: 'silver_reward_per_item', type: 'integer' }) silverRewardPerItem!: number; @Column({ name: 'reputation_reward_per_item', type: 'integer' }) reputationRewardPerItem!: number; @Column({ name: 'repeatable', type: 'boolean' }) repeatable!: boolean; @Column({ name: 'enabled', type: 'boolean' }) enabled!: boolean; @CreateDateColumn({ name: 'created_at', type: 'timestamptz' }) createdAt!: Date; @UpdateDateColumn({ name: 'updated_at', type: 'timestamptz' }) updatedAt!: Date; @ManyToOne(() => ItemDefinition, { onDelete: 'RESTRICT' }) @JoinColumn({ name: 'item_definition_id' }) itemDefinition!: ItemDefinition; @ManyToOne(() => ReputationFaction, { onDelete: 'RESTRICT' }) @JoinColumn({ name: 'faction_id' }) faction!: ReputationFaction; }