import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn, } from 'typeorm'; import type { Relation } from 'typeorm'; import type { User } from './user.entity'; @Entity('sessions') export class Session { @PrimaryGeneratedColumn({ name: 'session_id' }) sessionId: number; @Column({ name: 'user_id', type: 'bigint', unsigned: true }) userId: number; @Column({ name: 'session_token', type: 'text' }) sessionToken: string; @Column({ name: 'ip_address', length: 45, nullable: true }) ipAddress?: string; @Column({ name: 'user_agent', type: 'text', nullable: true }) userAgent?: string; @Column({ name: 'device_type', length: 50, nullable: true }) deviceType?: string; @Column({ name: 'expires_at', type: 'datetime' }) expiresAt: Date; @Column({ name: 'remember_me', default: false }) rememberMe: boolean; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; // Relationships @ManyToOne('User', 'sessions', { onDelete: 'CASCADE' }) @JoinColumn({ name: 'user_id' }) user: Relation; }