import { IImageModelAttributes } from "../../Base/entities/image.entity"; import { IEventModelAttributes } from "./event.entity"; export type RoleType = "admin" | "organizer" | "officer" | "client" | "entry_staff"; export interface IUserModelAttributes { _id: string; name: string; email: string; phoneNumber: string; password: string; googlePassword: string; applePassword: string; otpSecret: string; image: IImageModelAttributes; roles: RoleType[]; favorites: (string | IEventModelAttributes)[]; isActive?: boolean; isTFAEnabled?: boolean; papiPoint: number; shareCount: number; loginAttempts?: number; lockUntil?: number; birthDate?: Date; notificationPreferences: { email: boolean; sms: boolean; newsletter: boolean; }; lastLogin?: Date; lastLoginIP?: string; createdAt?: Date; updatedAt?: Date; }