import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn, Index, } from 'typeorm'; import { User } from '../../users/entities/user.entity'; @Entity('refresh_tokens') @Index(['userId']) @Index(['token']) @Index(['expiresAt']) export class RefreshToken { @PrimaryGeneratedColumn('uuid') id: string; @Column({ type: 'uuid' }) userId: string; @ManyToOne(() => User) @JoinColumn({ name: 'userId' }) user: User; @Column({ type: 'varchar', length: 500 }) token: string; @Column({ type: 'varchar', length: 100, nullable: true }) deviceInfo: string; @Column({ type: 'varchar', length: 50, nullable: true }) ipAddress: string; @Column({ type: 'boolean', default: false }) isRevoked: boolean; @Column({ type: 'timestamp' }) expiresAt: Date; @CreateDateColumn() createdAt: Date; }