import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm'; import { License } from './license.entity'; @Entity('public_site_config') export class PublicSiteConfig { @PrimaryGeneratedColumn('uuid') id: string; @Column({ type: 'uuid', unique: true }) license_id: string; @Column({ type: 'boolean', default: true }) site_enabled: boolean; @Column({ type: 'boolean', default: false }) show_on_status_page: boolean; @Column({ type: 'varchar', length: 255, nullable: true }) steam_connect_url: string | null; @Column({ type: 'text', nullable: true }) motd: string | null; @Column('text', { array: true, default: '{}' }) public_mods: string[]; @Column({ type: 'text', nullable: true }) header_image_url: string | null; @Column({ type: 'varchar', length: 7, default: '#ef4444' }) theme_color: string; @Column({ type: 'text', nullable: true }) custom_css: string | null; @Column({ type: 'text', nullable: true }) discord_invite_url: string | null; @Column({ type: 'boolean', default: true }) show_player_count: boolean; @Column({ type: 'boolean', default: true }) show_wipe_schedule: boolean; @Column({ type: 'boolean', default: true }) show_wipe_countdown: boolean; @Column({ type: 'boolean', default: true }) show_mod_list: boolean; @Column({ type: 'text', nullable: true }) status_page_description: string | null; @Column({ type: 'timestamptz', default: () => 'NOW()' }) created_at: Date; @ManyToOne(() => License, { onDelete: 'CASCADE' }) @JoinColumn({ name: 'license_id' }) license: License; }