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[]; }