251204:1700 Prepare to version 1.5.1

This commit is contained in:
admin
2025-12-04 16:50:09 +07:00
parent 05f8f4403a
commit dc8b80c5f9
34 changed files with 8518 additions and 3107 deletions
@@ -4,11 +4,12 @@ import {
IsOptional,
IsArray,
IsNotEmpty,
ValidateNested,
IsEnum,
} from 'class-validator';
import { Type } from 'class-transformer';
import { ApiProperty } from '@nestjs/swagger';
// Enum นี้ควรตรงกับใน Entity หรือสร้างไฟล์ enum แยก (ในที่นี้ใส่ไว้ใน DTO เพื่อความสะดวก)
export enum TransmittalPurpose {
FOR_APPROVAL = 'FOR_APPROVAL',
FOR_INFORMATION = 'FOR_INFORMATION',
@@ -16,21 +17,57 @@ export enum TransmittalPurpose {
OTHER = 'OTHER',
}
export class CreateTransmittalDto {
export class TransmittalItemDto {
@ApiProperty({
description: 'ประเภทรายการ (DRAWING, RFA, CORRESPONDENCE)',
example: 'DRAWING',
})
@IsString()
@IsNotEmpty()
itemType!: string;
@ApiProperty({ description: 'ID ของรายการ', example: 1 })
@IsInt()
@IsNotEmpty()
projectId!: number; // จำเป็นสำหรับการออกเลขที่เอกสาร (Running Number)
@IsEnum(TransmittalPurpose)
@IsOptional()
purpose?: TransmittalPurpose; // วัตถุประสงค์การส่ง
itemId!: number;
@ApiProperty({ description: 'รายละเอียดเพิ่มเติม', required: false })
@IsString()
@IsOptional()
remarks?: string; // หมายเหตุเพิ่มเติม
@IsArray()
@IsInt({ each: true })
@IsNotEmpty()
itemIds!: number[]; // ID ของเอกสาร (Correspondence IDs) ที่จะแนบไปใน Transmittal นี้
description?: string;
}
export class CreateTransmittalDto {
@ApiProperty({ description: 'ID ของโครงการ', example: 1 })
@IsInt()
@IsNotEmpty()
projectId!: number;
@ApiProperty({
description: 'เรื่อง',
example: 'Transmittal for Shop Drawings',
})
@IsString()
@IsNotEmpty()
subject!: string;
@ApiProperty({ description: 'ผู้รับ (Organization ID)', example: 2 })
@IsInt()
@IsNotEmpty()
recipientOrganizationId!: number;
@ApiProperty({
description: 'วัตถุประสงค์',
enum: TransmittalPurpose,
example: TransmittalPurpose.FOR_APPROVAL,
})
@IsEnum(TransmittalPurpose)
@IsOptional()
purpose?: TransmittalPurpose;
@ApiProperty({ description: 'รายการที่แนบ', type: [TransmittalItemDto] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => TransmittalItemDto)
items!: TransmittalItemDto[];
}