251124:1700 Ready to Phase 7

This commit is contained in:
admin
2025-11-24 17:01:58 +07:00
parent 9360d78ea6
commit 4f45a69ed0
47 changed files with 2047 additions and 433 deletions
@@ -0,0 +1,26 @@
// File: src/modules/workflow-engine/dto/create-workflow-definition.dto.ts
import {
IsString,
IsNotEmpty,
IsObject,
IsOptional,
IsBoolean,
} from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
export class CreateWorkflowDefinitionDto {
@ApiProperty({ example: 'RFA', description: 'รหัสของ Workflow' })
@IsString()
@IsNotEmpty()
workflow_code!: string; // เพิ่ม !
@ApiProperty({ description: 'นิยาม Workflow' })
@IsObject()
@IsNotEmpty()
dsl!: any; // เพิ่ม !
@ApiProperty({ description: 'เปิดใช้งานทันทีหรือไม่', default: true })
@IsBoolean()
@IsOptional()
is_active?: boolean;
}
@@ -0,0 +1,25 @@
// File: src/modules/workflow-engine/dto/evaluate-workflow.dto.ts
import { IsString, IsNotEmpty, IsObject, IsOptional } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
export class EvaluateWorkflowDto {
@ApiProperty({ example: 'RFA', description: 'รหัส Workflow' })
@IsString()
@IsNotEmpty()
workflow_code!: string; // เพิ่ม !
@ApiProperty({ example: 'DRAFT', description: 'สถานะปัจจุบัน' })
@IsString()
@IsNotEmpty()
current_state!: string; // เพิ่ม !
@ApiProperty({ example: 'SUBMIT', description: 'Action ที่ต้องการทำ' })
@IsString()
@IsNotEmpty()
action!: string; // เพิ่ม !
@ApiProperty({ description: 'Context', example: { userId: 1 } })
@IsObject()
@IsOptional()
context?: Record<string, any>;
}
@@ -0,0 +1,15 @@
// File: src/modules/workflow-engine/dto/get-available-actions.dto.ts
import { IsString, IsNotEmpty } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
export class GetAvailableActionsDto {
@ApiProperty({ description: 'รหัส Workflow', example: 'RFA' })
@IsString()
@IsNotEmpty()
workflow_code!: string; // เพิ่ม !
@ApiProperty({ description: 'สถานะปัจจุบัน', example: 'DRAFT' })
@IsString()
@IsNotEmpty()
current_state!: string; // เพิ่ม !
}
@@ -0,0 +1,10 @@
// File: src/modules/workflow-engine/dto/update-workflow-definition.dto.ts
import { PartialType } from '@nestjs/swagger';
import { CreateWorkflowDefinitionDto } from './create-workflow-definition.dto';
// PartialType จะทำให้ทุก field ใน CreateDto กลายเป็น Optional (?)
// เหมาะสำหรับ PATCH method
export class UpdateWorkflowDefinitionDto extends PartialType(
CreateWorkflowDefinitionDto,
) {}