import IDatabase from "../../interfaces/database"; import IModel from "../../interfaces/model"; import type { TProduct } from "../../types/product"; import ProductAttributeModel from "./product-attribute"; import ProductDescriptionModel from "./product-description"; import ProductImageModel from "./product-image"; import ProductOptionModel from "./product-option"; import ProductSpecialModel from "./product-special"; export default class ProductModel implements IModel { private database; constructor(database: IDatabase); private table; description: ProductDescriptionModel; option: ProductOptionModel; attribute: ProductAttributeModel; special: ProductSpecialModel; image: ProductImageModel; select(criteria: Partial): Promise; insert(data: Partial): Promise; update(criteria: Partial, data: Partial): Promise; delete(criteria: Partial): Promise; toCategory(productId: number, categoryId: number, mainCategory?: number): Promise; toStore(productId: number, storeId: number): Promise; }