251128:1700 Backend to T3.1.1

This commit is contained in:
admin
2025-11-28 17:12:05 +07:00
parent b22d00877e
commit f7a43600a3
50 changed files with 4891 additions and 2849 deletions
@@ -1,24 +1,47 @@
// File: src/modules/json-schema/entities/json-schema.entity.ts
import {
Entity,
Column,
PrimaryGeneratedColumn,
CreateDateColumn,
UpdateDateColumn,
Index,
} from 'typeorm';
export interface VirtualColumnConfig {
json_path: string;
column_name: string;
data_type: 'INT' | 'VARCHAR' | 'BOOLEAN' | 'DATE' | 'DECIMAL' | 'DATETIME';
index_type?: 'INDEX' | 'UNIQUE' | 'FULLTEXT';
is_required: boolean;
}
@Entity('json_schemas')
@Index(['schemaCode', 'version'], { unique: true })
export class JsonSchema {
@PrimaryGeneratedColumn()
id!: number;
@Column({ name: 'schema_code', unique: true, length: 100 })
schemaCode!: string; // เช่น 'RFA_DWG_V1'
@Column({ name: 'schema_code', length: 100 })
schemaCode!: string;
@Column({ default: 1 })
version!: number;
@Column({ name: 'table_name', length: 100, nullable: false }) // ✅ เพิ่ม: ระบุตารางเป้าหมาย
tableName!: string;
@Column({ name: 'schema_definition', type: 'json' })
schemaDefinition!: any; // เก็บ JSON Schema มาตรฐาน (Draft 7/2019-09)
schemaDefinition!: any;
@Column({ name: 'ui_schema', type: 'json', nullable: true })
uiSchema?: any;
@Column({ name: 'virtual_columns', type: 'json', nullable: true })
virtualColumns?: VirtualColumnConfig[];
@Column({ name: 'migration_script', type: 'json', nullable: true })
migrationScript?: any;
@Column({ name: 'is_active', default: true })
isActive!: boolean;