import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn, } from 'typeorm'; import { User } from '../../auth/entities/user.entity'; export enum SettingType { STRING = 'string', NUMBER = 'number', BOOLEAN = 'boolean', JSON = 'json', } @Entity('system_settings') export class SystemSetting { @PrimaryGeneratedColumn({ name: 'setting_id', type: 'int', unsigned: true }) settingId: number; @Column({ name: 'setting_key', type: 'varchar', length: 100, unique: true }) settingKey: string; @Column({ name: 'setting_value', type: 'text' }) settingValue: string; @Column({ name: 'setting_type', type: 'enum', enum: SettingType, default: SettingType.STRING, }) settingType: SettingType; @Column({ name: 'category', type: 'varchar', length: 50, nullable: true }) category: string; @Column({ name: 'description', type: 'text', nullable: true }) description: string; @Column({ name: 'is_public', type: 'tinyint', default: 0 }) isPublic: boolean; @Column({ name: 'updated_by', type: 'bigint', unsigned: true, nullable: true }) updatedBy: number; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; @ManyToOne(() => User) @JoinColumn({ name: 'updated_by' }) updatedByUser: User; }