import { BaseEntity } from './common.mjs'; declare enum POS_ORDER_STATUS { OPEN = "OPEN", CLOSED = "CLOSED", CANCELLED = "CANCELLED", REFUNDED = "REFUNDED" } declare enum POS_PAYMENT_STATUS { PENDING = "PENDING", PAID = "PAID", FAILED = "FAILED", REFUNDED = "REFUNDED" } declare enum POS_PAYMENT_METHOD_TYPE { CASH = "CASH", CARD = "CARD", GIFT_CARD = "GIFT_CARD", MOBILE_WALLET = "MOBILE_WALLET", OTHER = "OTHER" } declare enum POS_REGISTER_STATUS { ACTIVE = "ACTIVE", INACTIVE = "INACTIVE" } declare enum POS_TAX_TYPE { EXCLUSIVE = "EXCLUSIVE", INCLUSIVE = "INCLUSIVE" } declare enum POS_TABLE_STATUS { AVAILABLE = "AVAILABLE", OCCUPIED = "OCCUPIED", RESERVED = "RESERVED" } declare enum POS_RESERVATION_STATUS { PENDING = "PENDING", CONFIRMED = "CONFIRMED", CANCELLED = "CANCELLED", COMPLETED = "COMPLETED" } declare enum POS_SHIFT_STATUS { OPEN = "OPEN", CLOSED = "CLOSED" } declare enum POS_DISCOUNT_TYPE { FIXED = "FIXED", PERCENTAGE = "PERCENTAGE" } interface POSStoreBE extends BaseEntity { name: string; code?: string; address?: string; phone?: string; email?: string; currency: string; meta?: any; enabled: boolean; } interface POSRegisterBE extends BaseEntity { name: string; storeId: string; status: POS_REGISTER_STATUS; meta?: any; } interface POSShiftBE extends BaseEntity { registerId: string; openedByUserId?: string; openedAt: Date; closedAt?: Date; openingAmount: number; closingAmount?: number; status: POS_SHIFT_STATUS; meta?: any; } interface POSCategoryBE extends BaseEntity { name: string; description?: string; storeId: string; parentId?: string; meta?: any; } interface POSProductBE extends BaseEntity { sku?: string; name: string; description?: string; price: number; cost?: number; stock: number; storeId: string; categoryId?: string; meta?: any; } interface POSProductVariantBE extends BaseEntity { productId: string; name: string; sku?: string; price: number; stock: number; meta?: any; } interface POSCustomerBE extends BaseEntity { name: string; email?: string; phone?: string; storeId: string; loyaltyPoints: number; meta?: any; } interface POSTableBE extends BaseEntity { storeId: string; name: string; seats: number; status: POS_TABLE_STATUS; meta?: any; } interface POSReservationBE extends BaseEntity { tableId: string; customerId: string; startAt: Date; endAt: Date; partySize: number; status: POS_RESERVATION_STATUS; meta?: any; } interface POSOrderBE extends BaseEntity { orderNumber: string; storeId: string; registerId?: string; customerId?: string; tableId?: string; status: POS_ORDER_STATUS; paymentStatus: POS_PAYMENT_STATUS; subTotal: number; taxTotal: number; discountTotal: number; serviceCharge: number; total: number; note?: string; meta?: any; } interface POSOrderItemBE extends BaseEntity { orderId: string; productId?: string; variantId?: string; name: string; quantity: number; unitPrice: number; total: number; taxAmount: number; discountAmount: number; meta?: any; } interface POSPaymentBE extends BaseEntity { orderId: string; amount: number; method: POS_PAYMENT_METHOD_TYPE; methodLabel?: string; status: POS_PAYMENT_STATUS; transactionRef?: string; processedAt?: Date; meta?: any; } interface POSTaxBE extends BaseEntity { name: string; rate: number; type: POS_TAX_TYPE; isDefault: boolean; storeId: string; meta?: any; } interface POSDiscountBE extends BaseEntity { name: string; type: POS_DISCOUNT_TYPE; value: number; storeId: string; meta?: any; } export { type POSCategoryBE, type POSCustomerBE, type POSDiscountBE, type POSOrderBE, type POSOrderItemBE, type POSPaymentBE, type POSProductBE, type POSProductVariantBE, type POSRegisterBE, type POSReservationBE, type POSShiftBE, type POSStoreBE, type POSTableBE, type POSTaxBE, POS_DISCOUNT_TYPE, POS_ORDER_STATUS, POS_PAYMENT_METHOD_TYPE, POS_PAYMENT_STATUS, POS_REGISTER_STATUS, POS_RESERVATION_STATUS, POS_SHIFT_STATUS, POS_TABLE_STATUS, POS_TAX_TYPE };