260228:1608 20260228:16:07 sync data dictionary with attachments schema addition
All checks were successful
Build and Deploy / deploy (push) Successful in 47s
All checks were successful
Build and Deploy / deploy (push) Successful in 47s
This commit is contained in:
@@ -1347,20 +1347,21 @@ SET NULL - INDEX (is_active) - INDEX (email) ** Relationships **: - Parent: orga
|
||||
|
||||
**Purpose**: Central repository for all file attachments in the system
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| ------------------- | ------------ | --------------------------- | -------------------------------------------------------------- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique attachment ID |
|
||||
| original_filename | VARCHAR(255) | NOT NULL | Original filename from upload |
|
||||
| stored_filename | VARCHAR(255) | NOT NULL | System-generated unique filename |
|
||||
| file_path | VARCHAR(500) | NOT NULL | Full file path on server (/share/dms-data/) |
|
||||
| mime_type | VARCHAR(100) | NOT NULL | MIME type (application/pdf, image/jpeg, etc.) |
|
||||
| file_size | INT | NOT NULL | File size in bytes |
|
||||
| uploaded_by_user_id | INT | NOT NULL, FK | User who uploaded file |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | Upload timestamp |
|
||||
| is_temporary | BOOLEAN | DEFAULT TRUE | ระบุว่าเป็นไฟล์ชั่วคราว (ยังไม่ได้ Commit) |
|
||||
| temp_id\* | VARCHAR(100) | NULL | ID ชั่วคราวสำหรับอ้างอิงตอน Upload Phase 1 (อาจใช้ร่วมกับ id หรือแยกก็ได้) |
|
||||
| expires_at | DATETIME | NULL | เวลาหมดอายุของไฟล์ Temp (เพื่อให้ Cron Job ลบออก) |
|
||||
| checksum | VARCHAR(64) | NULL | SHA-256 Checksum สำหรับ Verify File Integrity [Req 3.9.3] |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| ------------------- | ------------ | --------------------------- | ------------------------------------------------------------------------ |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique attachment ID |
|
||||
| original_filename | VARCHAR(255) | NOT NULL | Original filename from upload |
|
||||
| stored_filename | VARCHAR(255) | NOT NULL | System-generated unique filename |
|
||||
| file_path | VARCHAR(500) | NOT NULL | Full file path on server (/share/dms-data/) |
|
||||
| mime_type | VARCHAR(100) | NOT NULL | MIME type (application/pdf, image/jpeg, etc.) |
|
||||
| file_size | INT | NOT NULL | File size in bytes |
|
||||
| uploaded_by_user_id | INT | NOT NULL, FK | User who uploaded file |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | Upload timestamp |
|
||||
| is_temporary | BOOLEAN | DEFAULT TRUE | ระบุว่าเป็นไฟล์ชั่วคราว (ยังไม่ได้ Commit) |
|
||||
| temp_id\* | VARCHAR(100) | NULL | ID ชั่วคราวสำหรับอ้างอิงตอน Upload Phase 1 (อาจใช้ร่วมกับ id หรือแยกก็ได้) |
|
||||
| expires_at | DATETIME | NULL | เวลาหมดอายุของไฟล์ Temp (เพื่อให้ Cron Job ลบออก) |
|
||||
| checksum | VARCHAR(64) | NULL | SHA-256 Checksum สำหรับ Verify File Integrity [Req 3.9.3] |
|
||||
| reference_date | DATE | NULL | Date used for folder structure (e.g. Issue Date) to prevent broken paths |
|
||||
|
||||
**Indexes**:
|
||||
|
||||
@@ -1370,6 +1371,7 @@ SET NULL - INDEX (is_active) - INDEX (email) ** Relationships **: - Parent: orga
|
||||
* INDEX (mime_type)
|
||||
* INDEX (uploaded_by_user_id)
|
||||
* INDEX (created_at)
|
||||
* INDEX (reference_date)
|
||||
|
||||
**Relationships**:
|
||||
|
||||
@@ -2049,82 +2051,82 @@ PARTITION BY RANGE (YEAR(created_at)) (
|
||||
#### 16.3.1 migration_progress
|
||||
**Purpose**: เก็บ Checkpoint สถานะการ Migrate
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| batch_id | VARCHAR(50) | PRIMARY KEY | รหัสชุดการ Migrate |
|
||||
| last_processed_index | INT | DEFAULT 0 | ลำดับล่าสุดที่ประมวลผลผ่าน |
|
||||
| status | ENUM | DEFAULT 'RUNNING' | สถานะ (RUNNING, COMPLETED, FAILED) |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE | เวลาอัปเดตล่าสุด |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :------------------- | :---------- | :---------------------------------- | :--------------------------------- |
|
||||
| batch_id | VARCHAR(50) | PRIMARY KEY | รหัสชุดการ Migrate |
|
||||
| last_processed_index | INT | DEFAULT 0 | ลำดับล่าสุดที่ประมวลผลผ่าน |
|
||||
| status | ENUM | DEFAULT 'RUNNING' | สถานะ (RUNNING, COMPLETED, FAILED) |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE | เวลาอัปเดตล่าสุด |
|
||||
|
||||
#### 16.3.2 migration_review_queue
|
||||
**Purpose**: คิวเอกสารที่ต้องการให้เจ้าหน้าที่ตรวจสอบ (Confidence ต่ำกว่าเกณฑ์)
|
||||
*หมายเหตุ: เมื่อตรวจสอบผ่านและสร้าง Correspondence จริงแล้ว ข้อมูลในนี้อาจถูกลบหรือเก็บเป็น Log ได้*
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| document_number | VARCHAR(100) | NOT NULL, UNIQUE | เลขที่เอกสาร (จาก OCR) |
|
||||
| title | TEXT | | ชื่อเรื่อง |
|
||||
| original_title | TEXT | | ชื่อเรื่องต้นฉบับก่อนตรวจสอบ |
|
||||
| ai_suggested_category | VARCHAR(50) | | หมวดหมู่ที่ AI แนะนำ |
|
||||
| ai_confidence | DECIMAL(4,3) | | ค่าความมั่นใจของ AI (0.000 - 1.000) |
|
||||
| ai_issues | JSON | | รายละเอียดปัญหาที่ AI พบ |
|
||||
| review_reason | VARCHAR(255) | | เหตุผลที่ต้องตรวจสอบ (เช่น Confidence ต่ำ) |
|
||||
| status | ENUM | DEFAULT 'PENDING' | PENDING, APPROVED, REJECTED |
|
||||
| reviewed_by | VARCHAR(100) | | ผู้ตรวจสอบ |
|
||||
| reviewed_at | TIMESTAMP | NULL | เวลาที่ตรวจสอบ |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึกเข้าคิว |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :-------------------- | :----------- | :-------------------------- | :---------------------------------- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| document_number | VARCHAR(100) | NOT NULL, UNIQUE | เลขที่เอกสาร (จาก OCR) |
|
||||
| title | TEXT | | ชื่อเรื่อง |
|
||||
| original_title | TEXT | | ชื่อเรื่องต้นฉบับก่อนตรวจสอบ |
|
||||
| ai_suggested_category | VARCHAR(50) | | หมวดหมู่ที่ AI แนะนำ |
|
||||
| ai_confidence | DECIMAL(4,3) | | ค่าความมั่นใจของ AI (0.000 - 1.000) |
|
||||
| ai_issues | JSON | | รายละเอียดปัญหาที่ AI พบ |
|
||||
| review_reason | VARCHAR(255) | | เหตุผลที่ต้องตรวจสอบ (เช่น Confidence ต่ำ) |
|
||||
| status | ENUM | DEFAULT 'PENDING' | PENDING, APPROVED, REJECTED |
|
||||
| reviewed_by | VARCHAR(100) | | ผู้ตรวจสอบ |
|
||||
| reviewed_at | TIMESTAMP | NULL | เวลาที่ตรวจสอบ |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึกเข้าคิว |
|
||||
|
||||
#### 16.3.3 migration_errors
|
||||
**Purpose**: บันทึกข้อผิดพลาด (Errors) ระหว่างการทำงานของ n8n workflow
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| batch_id | VARCHAR(50) | INDEX | รหัสชุดการ Migrate |
|
||||
| document_number | VARCHAR(100) | | เลขที่เอกสาร |
|
||||
| error_type | ENUM | INDEX | ประเภท Error (FILE_NOT_FOUND, AI_PARSE_ERROR, etc.) |
|
||||
| error_message | TEXT | | รายละเอียด Error |
|
||||
| raw_ai_response | TEXT | | Raw response จาก AI กรณีแปลผลไม่ได้ |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึก |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :-------------- | :----------- | :-------------------------- | :-------------------------------------------------- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| batch_id | VARCHAR(50) | INDEX | รหัสชุดการ Migrate |
|
||||
| document_number | VARCHAR(100) | | เลขที่เอกสาร |
|
||||
| error_type | ENUM | INDEX | ประเภท Error (FILE_NOT_FOUND, AI_PARSE_ERROR, etc.) |
|
||||
| error_message | TEXT | | รายละเอียด Error |
|
||||
| raw_ai_response | TEXT | | Raw response จาก AI กรณีแปลผลไม่ได้ |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึก |
|
||||
|
||||
#### 16.3.4 migration_fallback_state
|
||||
**Purpose**: ติดตามสถานะ Fallback ของ AI (เช่น เปลี่ยน Model เมื่อ Error ถี่)
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| batch_id | VARCHAR(50) | UNIQUE | รหัสชุดการ Migrate |
|
||||
| recent_error_count | INT | DEFAULT 0 | จำนวน Error รวดล่าสุด |
|
||||
| is_fallback_active | BOOLEAN | DEFAULT FALSE | สถานะการใช้งาน Fallback Model |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE | เวลาอัปเดตล่าสุด |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :----------------- | :---------- | :---------------------------------- | :--------------------------- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| batch_id | VARCHAR(50) | UNIQUE | รหัสชุดการ Migrate |
|
||||
| recent_error_count | INT | DEFAULT 0 | จำนวน Error รวดล่าสุด |
|
||||
| is_fallback_active | BOOLEAN | DEFAULT FALSE | สถานะการใช้งาน Fallback Model |
|
||||
| updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE | เวลาอัปเดตล่าสุด |
|
||||
|
||||
#### 16.3.5 import_transactions
|
||||
**Purpose**: ป้องกันข้อมูลซ้ำ (Idempotency) ระหว่างการ Patch ข้อมูล
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| idempotency_key | VARCHAR(255) | UNIQUE, NOT NULL | Key สำหรับเช็คซ้ำ |
|
||||
| document_number | VARCHAR(100) | | เลขที่เอกสาร |
|
||||
| batch_id | VARCHAR(100) | | รหัสชุดการ Migrate |
|
||||
| status_code | INT | DEFAULT 201 | HTTP Status ของการ Import |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึก |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :-------------- | :----------- | :-------------------------- | :------------------------ |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| idempotency_key | VARCHAR(255) | UNIQUE, NOT NULL | Key สำหรับเช็คซ้ำ |
|
||||
| document_number | VARCHAR(100) | | เลขที่เอกสาร |
|
||||
| batch_id | VARCHAR(100) | | รหัสชุดการ Migrate |
|
||||
| status_code | INT | DEFAULT 201 | HTTP Status ของการ Import |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึก |
|
||||
|
||||
#### 16.3.6 migration_daily_summary
|
||||
**Purpose**: สรุปยอดการทำงานรายวันแยกตาม Batch
|
||||
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| batch_id | VARCHAR(50) | UNIQUE KEY PART 1 | รหัสชุดการ Migrate |
|
||||
| summary_date | DATE | UNIQUE KEY PART 2 | วันที่สรุป |
|
||||
| total_processed | INT | DEFAULT 0 | จำนวนที่ประมวลผลรวม |
|
||||
| auto_ingested | INT | DEFAULT 0 | จำนวนที่เข้าสู่ระบบสำเร็จ |
|
||||
| sent_to_review | INT | DEFAULT 0 | จำนวนที่ส่งคิวตรวจสอบ |
|
||||
| rejected | INT | DEFAULT 0 | จำนวนที่ถูกปฏิเสธ |
|
||||
| errors | INT | DEFAULT 0 | จำนวนที่เกิด Error |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึก |
|
||||
| Column Name | Data Type | Constraints | Description |
|
||||
| :-------------- | :---------- | :-------------------------- | :---------------- |
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | Unique ID |
|
||||
| batch_id | VARCHAR(50) | UNIQUE KEY PART 1 | รหัสชุดการ Migrate |
|
||||
| summary_date | DATE | UNIQUE KEY PART 2 | วันที่สรุป |
|
||||
| total_processed | INT | DEFAULT 0 | จำนวนที่ประมวลผลรวม |
|
||||
| auto_ingested | INT | DEFAULT 0 | จำนวนที่เข้าสู่ระบบสำเร็จ |
|
||||
| sent_to_review | INT | DEFAULT 0 | จำนวนที่ส่งคิวตรวจสอบ |
|
||||
| rejected | INT | DEFAULT 0 | จำนวนที่ถูกปฏิเสธ |
|
||||
| errors | INT | DEFAULT 0 | จำนวนที่เกิด Error |
|
||||
| created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | วันที่บันทึก |
|
||||
|
||||
---
|
||||
## **17. 📈 Monitoring & Maintenance (การดูแลรักษา)**
|
||||
|
||||
Reference in New Issue
Block a user