- Add audit controller, routes, middleware and services - Add MFA controller, routes and services - Add feature flags module with controllers, DTOs, middleware and services - Update auth, financial, inventory entities - Update package.json dependencies Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import {
|
|
Entity,
|
|
PrimaryGeneratedColumn,
|
|
Column,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
Index,
|
|
Unique,
|
|
OneToMany,
|
|
} from 'typeorm';
|
|
import { TenantOverride } from './tenant-override.entity';
|
|
|
|
@Entity({ name: 'flags', schema: 'feature_flags' })
|
|
@Unique(['code'])
|
|
export class Flag {
|
|
@PrimaryGeneratedColumn('uuid')
|
|
id: string;
|
|
|
|
@Index()
|
|
@Column({ name: 'code', type: 'varchar', length: 50 })
|
|
code: string;
|
|
|
|
@Column({ name: 'name', type: 'varchar', length: 100 })
|
|
name: string;
|
|
|
|
@Column({ name: 'description', type: 'text', nullable: true })
|
|
description: string;
|
|
|
|
@Index()
|
|
@Column({ name: 'enabled', type: 'boolean', default: false })
|
|
enabled: boolean;
|
|
|
|
@Column({ name: 'rollout_percentage', type: 'int', default: 100 })
|
|
rolloutPercentage: number;
|
|
|
|
@Column({ name: 'tags', type: 'text', array: true, nullable: true })
|
|
tags: string[];
|
|
|
|
@Index()
|
|
@Column({ name: 'is_active', type: 'boolean', default: true })
|
|
isActive: boolean;
|
|
|
|
@CreateDateColumn({ name: 'created_at', type: 'timestamptz' })
|
|
createdAt: Date;
|
|
|
|
@UpdateDateColumn({ name: 'updated_at', type: 'timestamptz' })
|
|
updatedAt: Date;
|
|
|
|
@Column({ name: 'created_by', type: 'uuid', nullable: true })
|
|
createdBy: string;
|
|
|
|
@Column({ name: 'updated_by', type: 'uuid', nullable: true })
|
|
updatedBy: string;
|
|
|
|
@OneToMany(() => TenantOverride, (override) => override.flag)
|
|
overrides: TenantOverride[];
|
|
}
|