60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import {
|
|
IsNotEmpty,
|
|
IsDate,
|
|
IsOptional,
|
|
ValidateNested,
|
|
} from "class-validator";
|
|
import Customer from ".";
|
|
import DocumentHistory from "./DocumentHistory";
|
|
import DocumentType from "./DocumentType";
|
|
import File from "./File";
|
|
import OfficeFolder from "./OfficeFolder";
|
|
import Resource from "../Resource";
|
|
import { Type } from "class-transformer";
|
|
|
|
export default class Document extends Resource {
|
|
@IsNotEmpty({ groups: ["update"] ,message: "UID is required" })
|
|
public uid?: string;
|
|
|
|
@IsNotEmpty({ groups: ["create"], message: "Document status is required" })
|
|
public document_status!: EDocumentStatus | string;
|
|
|
|
@IsNotEmpty({ groups: ["create"], message: "Document type is required" })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => DocumentType)
|
|
public document_type!: DocumentType;
|
|
|
|
@IsNotEmpty({ groups: ["create"], message: "Folder is required" })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => OfficeFolder)
|
|
public folder!: OfficeFolder;
|
|
|
|
@IsNotEmpty({ groups: ["create"], message: "Depositor is required" })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => Customer)
|
|
public depositor!: Customer;
|
|
|
|
@IsDate()
|
|
public created_at: Date | null = null;
|
|
|
|
@IsDate()
|
|
public updated_at: Date | null = null;
|
|
|
|
@IsOptional({ groups: ["create", "update"] })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => File)
|
|
public files?: File[];
|
|
|
|
@IsOptional({ groups: ["create", "update"] })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => DocumentHistory)
|
|
public document_history?: DocumentHistory[];
|
|
}
|
|
export enum EDocumentStatus {
|
|
ASKED = "ASKED",
|
|
DEPOSITED = "DEPOSITED",
|
|
VALIDATED = "VALIDATED",
|
|
ANCHORED = "ANCHORED",
|
|
REFUSED = "REFUSED",
|
|
}
|