import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
OneToMany,
} from 'typeorm';
import { ApiKey } from './api-key.entity';
export enum UserTier {
FREE = 'free',
PRO = 'pro',
ENTERPRISE = 'enterprise',
}
@Entity('users')
export class User {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ type: 'varchar', length: 255, unique: true })
email: string;
@Column({ type: 'varchar', length: 255 })
password_hash: string;
@Column({
type: 'varchar',
length: 20,
default: UserTier.FREE,
enum: UserTier,
})
tier: UserTier;
@CreateDateColumn()
created_at: Date;
@UpdateDateColumn()
updated_at: Date;
// Relations
@OneToMany(() => ApiKey, (apiKey) => apiKey.user, { cascade: true })
api_keys: ApiKey[];
}