import User from "./user"; import ItemStatus from "./vo/itemStatus.vo"; import ItemType from "./vo/itemType.vo"; export interface ItemData { id: string; name: string; description: string; onClickRedirect?: string; type: ItemType; price: number; image: string; link?: string; dueDate?: Date; user?: User; availableStock?: number; couponsAvailable?: number; couponsTaken?: number; assigned?: number; totalCodes?: number; visible?: boolean; } export default class Item { availableStock?: number; id: string; name: string; description: string; onClickRedirect?: string; type: ItemType; status: ItemStatus; price: number; image: string; link?: string; dueDate?: Date; assigned: number; couponsAvailable?: number; totalCodes?: number; couponsTaken?: number; visible: boolean; constructor(data: ItemData); hasStock: (quantity?: number) => void; statusForUser: (user?: User) => ItemStatus; }