zurri / src /entities /ApiKey.ts
nexusbert's picture
initial commit
b5e5eac
raw
history blame contribute delete
807 Bytes
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
ManyToOne,
Index,
} from 'typeorm';
import { User } from './User';
@Entity('api_keys')
@Index(['key', 'isActive'])
export class ApiKey {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ unique: true })
key: string; // Hashed API key
@ManyToOne(() => User, (user) => user.apiKeys)
user: User;
@Column()
userId: string;
@Column({ default: true })
isActive: boolean;
@Column({ nullable: true })
rateLimit?: number; // Requests per period
@Column({ nullable: true })
expiresAt?: Date;
@Column({ default: 0 })
usageCount: number;
@Column({ nullable: true })
lastUsedAt?: Date;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}