Spaces:
Sleeping
Sleeping
| import { | |
| Entity, | |
| PrimaryGeneratedColumn, | |
| Column, | |
| CreateDateColumn, | |
| UpdateDateColumn, | |
| ManyToOne, | |
| JoinColumn, | |
| } from 'typeorm'; | |
| import { User } from '../../auth/entities/user.entity'; | |
| ('api_rate_limits') | |
| export class ApiRateLimit { | |
| ({ name: 'limit_id', type: 'bigint', unsigned: true }) | |
| limitId: number; | |
| ({ name: 'user_id', type: 'bigint', unsigned: true, nullable: true }) | |
| userId: number; | |
| ({ name: 'api_key', type: 'varchar', length: 255, nullable: true }) | |
| apiKey: string; | |
| ({ name: 'endpoint', type: 'varchar', length: 255, nullable: true }) | |
| endpoint: string; | |
| ({ name: 'request_count', type: 'int', default: 0 }) | |
| requestCount: number; | |
| ({ name: 'window_start', type: 'timestamp' }) | |
| windowStart: Date; | |
| ({ name: 'window_end', type: 'timestamp' }) | |
| windowEnd: Date; | |
| ({ name: 'max_requests', type: 'int', default: 1000 }) | |
| maxRequests: number; | |
| ({ name: 'window_seconds', type: 'int', default: 60 }) | |
| windowSeconds: number; | |
| ({ name: 'is_blocked', type: 'tinyint', default: 0 }) | |
| isBlocked: boolean; | |
| ({ name: 'created_at' }) | |
| createdAt: Date; | |
| ({ name: 'updated_at' }) | |
| updatedAt: Date; | |
| (() => User) | |
| ({ name: 'user_id' }) | |
| user: User; | |
| } | |