Vincent Alamelle d2e854f3a4 test
2023-05-02 16:44:19 +02:00

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",
}