package com.example.data.model data class FoodItem( val id: Long = 0, val name: String, val category: String, val price: Double, val originalPrice: Double = price * 1.25, val description: String = "", val isVeg: Boolean = false, val isBestSeller: Boolean = false, val imageUri: String = "", // Can be drawable resource name e.g. "img_special_biryani" or file path or content uri val isAvailable: Boolean = true, val rating: Float = 4.8f, val reviewCount: Int = 12, val preparationTimeMins: Int = 25 ) data class FoodReview( val id: Long = 0, val foodItemId: Long, val foodName: String, val customerName: String, val customerPhone: String, val rating: Float = 5.0f, val reviewText: String, val timestamp: Long = System.currentTimeMillis() ) data class CartItem( val item: FoodItem, val quantity: Int = 1, val customInstruction: String = "" ) { val subtotal: Double get() = item.price * quantity } enum class OrderStatus(val label: String) { PLACED("Order Placed"), PREPARING("Preparing Food"), OUT_FOR_DELIVERY("Out for Delivery"), DELIVERED("Delivered"), CANCELLED("Cancelled") } data class OrderItemSummary( val foodName: String, val quantity: Int, val price: Double, val isVeg: Boolean = false ) data class Order( val orderId: String, val customerName: String, val customerPhone: String, val deliveryAddress: String, val items: List, val itemTotal: Double, val deliveryFee: Double, val discount: Double, val grandTotal: Double, val paymentMethod: String, // "UPI_QR", "CASH_ON_DELIVERY" val paymentStatus: String, // "PAID", "PENDING_VERIFICATION", "CASH_ON_DELIVERY" val upiTransactionId: String = "", val orderStatus: OrderStatus = OrderStatus.PLACED, val assignedRiderName: String = "", val assignedRiderPhone: String = "", val assignedRiderVehicle: String = "", val timestamp: Long = System.currentTimeMillis() ) enum class RiderStatus(val label: String) { AVAILABLE("Available / Ready"), ON_DELIVERY("On Delivery"), OFFLINE("Off Duty") } data class DeliveryRider( val id: Long = 0, val name: String, val phone: String, val vehicleNumber: String, val status: RiderStatus = RiderStatus.AVAILABLE, val totalDeliveries: Int = 0, val rating: Float = 4.9f, val currentOrderId: String = "" ) data class CustomerUser( val id: String = "cust_1", val name: String = "Joydip", val phone: String = "+91 7005149514", val email: String = "dbna8546@gmail.com", val alternatePhone: String = "", val houseNo: String = "House #12", val streetArea: String = "Halaimura", val landmark: String = "Near Bhairav Thali", val zone: String = "Kumarghat", val pincode: String = "799290", val address: String = "Kumarghat halaimura near bhairav thali, Tripura 799290", val dietaryPreference: String = "Both", // "Veg", "Non-Veg", "Both" val dateOfBirth: String = "", val deliveryNote: String = "", val walletBalance: Double = 0.0, val profileImageUri: String = "", val isLoggedIn: Boolean = false, val password: String = "" ) { val phoneDigits: String get() = phone.filter { it.isDigit() }.let { if (it.length > 10) it.takeLast(10) else it } } data class AppNotification( val id: Long = 0, val title: String, val message: String, val timestamp: Long = System.currentTimeMillis(), val isRead: Boolean = false, val type: String = "OFFER" // "OFFER", "ORDER_UPDATE", "BROADCAST" ) data class AdminSettings( val restaurantName: String = "Love Zone Restaurant", val upiId: String = "lovezonerestaurant@okaxis", val qrImageUri: String = "", // custom uploaded or empty for default val isOpen: Boolean = true, val freeDeliveryThreshold: Double = 199.0, val deliveryFee: Double = 30.0, val announcement: String = "Welcome to Love Zone Restaurant! Get 50% OFF up to ₹100 on first order.", val customDomain: String = "https://lovezonerasturant.shop" )