import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, OneToOne, JoinColumn, } from 'typeorm'; import type { Relation } from 'typeorm'; import type { User } from './user.entity'; @Entity('user_preferences') export class UserPreference { @PrimaryGeneratedColumn({ name: 'preference_id' }) preferenceId: number; @Column({ name: 'user_id', type: 'bigint', unsigned: true }) userId: number; @Column({ length: 10, default: 'en' }) language: string; @Column({ length: 20, default: 'light' }) theme: string; @Column({ name: 'email_notifications', default: true }) emailNotifications: boolean; @Column({ name: 'push_notifications', default: true }) pushNotifications: boolean; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; @OneToOne('User', { onDelete: 'CASCADE' }) @JoinColumn({ name: 'user_id' }) user: Relation; }