2024-04-17 15:06:23 +02:00

62 lines
1.5 KiB
TypeScript

import { IsNotEmpty, IsDate } from "class-validator";
import Contact from "./Contact";
import Document from "./Document";
import Office from "./Office";
import Resource from "../Resource";
import { Expose, Type } from "class-transformer";
import Role from "./Role";
import OfficeRole from "./OfficeRole";
import OfficeFolder from "./OfficeFolder";
import Seats from "../Admin/Seats";
export default class User extends Resource {
@Expose()
@IsNotEmpty({
groups: ["createFolder", "updateFolder", "createVote"],
message: "UID is required",
})
public uid?: string;
@Expose()
public idNot!: string;
@Expose()
@IsNotEmpty({ groups: ["createUser"], message: "Contact is required" })
@Type(() => Contact)
public contact?: Contact;
@Expose()
@IsNotEmpty({ groups: ["createUser"], message: "Office is required" })
@Type(() => Office)
public office_membership?: Office;
@Expose()
@IsDate()
public created_at: Date | null = null;
@Expose()
@IsDate()
public updated_at: Date | null = null;
@Expose()
@Type(() => OfficeFolder)
public office_folders?: OfficeFolder[];
@Expose()
@Type(() => Document)
public documents?: Document[];
@Expose()
@IsNotEmpty({ groups: ["createUser", "auth"], message: "Role is required" })
@Type(() => Role)
public role?: Role;
@Expose()
@Type(() => OfficeRole)
public office_role?: OfficeRole;
@Expose()
@Type(() => Seats)
public seats?: Seats[];
}