Package-level declarations

Types

Link copied to clipboard
data class Product(val productUid: String, val productName: String, val productId: String? = null, val prefix: String? = null, val productDescription: String? = null, val productImage: String? = null, val productBarCode: String? = null, val productType: ZyncProductType = ZyncProductType.PRODUCT, val brand: String? = null, val specification: String? = null, val price: Double? = null, val purchasePrice: Double? = null, val currency: String? = null, val hasCustomTax: Boolean = false, val isBillable: Boolean = true, val quantity: Double = 0.0, val minQuantity: Double = 0.0, val uom: String? = null, val isAvailable: Boolean = true, val pricingLevel: ZyncBundlePricingLevel? = null, val productCategoryUid: String? = null, val productCategory: ProductCategory? = null, val locations: List<ProductLocation> = emptyList(), val bundleItems: List<ProductBundleItem> = emptyList(), val groups: List<ProductGroupAssociation> = emptyList(), val transactionHistory: List<ProductTransaction> = emptyList(), val tax: ProductTax? = null, val markup: ZyncProductMarkup? = null, val customFields: List<ProductCustomField> = emptyList(), val attachments: List<String> = emptyList(), val companyUid: String, val createdAt: String, val updatedAt: String? = null, val syncedAt: String? = null)

Domain model representing a Product in the Zuper system.

Link copied to clipboard
data class ProductBundleItem(val itemProductUid: String, val itemProductName: String? = null, val itemProductImage: String? = null, val itemPrice: Double? = null, val quantity: Double = 1.0, val itemMetadata: ProductBundleItemMetadata? = null)

Domain model representing a product bundle item.

Link copied to clipboard
data class ProductBundleItemMetadata(val description: String? = null, val specifications: String? = null, val notes: String? = null)

Domain model representing bundle item metadata.

Link copied to clipboard
data class ProductCategory(val categoryUid: String, val categoryName: String, val categoryDescription: String? = null, val isActive: Boolean = true, val parentCategoryUid: String? = null, val parentCategory: ProductCategory? = null, val companyUid: String, val createdAt: String, val updatedAt: String? = null)

Domain model representing a product category.

Link copied to clipboard
sealed class ProductChangeEvent

Event types for product change notifications.

Link copied to clipboard
data class ProductCustomField(val label: String, val value: String? = null, val type: String? = null, val isRequired: Boolean = false, val isReadOnly: Boolean = false, val isHidden: Boolean = false, val groupUid: String? = null, val groupName: String? = null, val moduleRef: String? = null)

Domain model representing product custom field.

Link copied to clipboard
sealed class ProductDetailResult
Link copied to clipboard
sealed class ProductError : Exception

Sealed class representing different types of product-related errors.

Link copied to clipboard
data class ProductGroup(val groupUid: String, val groupName: String, val groupDescription: String? = null, val isActive: Boolean = true, val products: List<ProductGroupProduct> = emptyList(), val companyUid: String, val createdAt: String, val updatedAt: String? = null)

Domain model representing a product group.

Link copied to clipboard
data class ProductGroupAssociation(val groupUid: String, val groupName: String? = null, val isPrimary: Boolean = false)

Domain model representing product group association.

Link copied to clipboard
data class ProductGroupProduct(val productUid: String, val productName: String? = null, val isPrimary: Boolean = false)

Domain model representing a product within a group.

Link copied to clipboard

Enum representing product inventory status.

Link copied to clipboard
data class ProductLocation(val locationUid: String? = null, val locationName: String, val quantity: Double = 0.0, val minQuantity: Double = 0.0, val serialNumbers: List<String> = emptyList(), val isDeleted: Boolean = false)

Domain model representing product location availability.

Link copied to clipboard
data class ProductMarkup(val markupType: ZyncProductMarkupType? = null, val markupValue: Double? = null, val basePrice: Double? = null, val calculatedPrice: Double? = null)

Domain model representing product markup configuration.

Link copied to clipboard

Enum representing product markup types.

Link copied to clipboard
sealed class ProductResult

Result wrapper for product operations.

Link copied to clipboard
data class ProductStats(val totalProducts: Int, val availableProducts: Int, val lowStockProducts: Int, val outOfStockProducts: Int, val totalInventoryValue: Double? = null, val averageProductPrice: Double? = null, val topSellingProducts: List<String>? = null, val reorderRequiredCount: Int? = null)

Data class for product statistics and metrics.

Link copied to clipboard
data class ProductTax(val taxName: String? = null, val taxRate: Double? = null, val taxType: String? = null, val isCustomTax: Boolean = false, val taxDetails: ProductTaxDetails? = null)

Domain model representing product tax configuration.

Link copied to clipboard
data class ProductTaxDetails(val taxUid: String? = null, val taxGroupUid: String? = null, val exemptionReason: String? = null, val isExempt: Boolean = false)

Domain model representing product tax details.

Link copied to clipboard
data class ProductTransaction(val transactionUid: String? = null, val transactionType: ProductTransactionType, val quantity: Double, val oldQuantity: Double? = null, val newQuantity: Double? = null, val fromLocationUid: String? = null, val fromLocationName: String? = null, val toLocationUid: String? = null, val toLocationName: String? = null, val moduleName: String? = null, val moduleUid: String? = null, val createdByUid: String? = null, val createdAt: String, val transactionDetails: ProductTransactionDetails? = null)

Domain model representing a product transaction.

Link copied to clipboard
data class ProductTransactionDetails(val reason: String? = null, val notes: String? = null, val referenceNumber: String? = null, val unitPrice: Double? = null, val totalValue: Double? = null)

Domain model representing transaction details.

Link copied to clipboard

Enum representing product transaction types.

Link copied to clipboard
data class ZyncAssociatedBundleItem(val lineItemUid: String, val productUid: String?, val productCode: String?, val name: String, val prefix: String?, val image: String?, val description: String?, val brand: String?, val specification: String?, val uom: String?, val locations: List<ZyncProductLocationAvailability>?, val locationUid: String?, val locationName: String?, val quantity: Double, val baseQuantity: Double, val unitPrice: Double, val purchasePrice: Double?, val serialNumbers: List<String>?, val productType: ZyncProductType, val tax: ZyncLineItemCustomTax?, val masterCustomTax: ZyncLineItemCustomTax?, val markup: ZyncProductMarkup?, val unitPricePreMarkup: Double?, val discountType: String?, val discount: Double?, val productCategory: ZyncProductCategory?, val isAvailable: Boolean, val isBillable: Boolean)
Link copied to clipboard
data class ZyncLineItem(val lineItemUid: String, val projectLineItemUid: String?, val lineItemType: String, val productUid: String?, val id: String?, val name: String, val prefix: String?, val quantity: Double, val unitPrice: Double, val productType: ZyncProductType, var tax: ZyncLineItemCustomTax?, val discountType: String?, val discount: Double?, val description: String?, val productId: String?, val serialNumbers: List<String>?, val image: String?, val total: Double, val locationUid: String?, val locationName: String?, val brand: String?, val specification: String?, val groupId: String?, val groupName: String?, val purchasePrice: Double?, val approvalStatus: String?, val uom: String?, val bundlePricingLevel: ZyncBundlePricingLevel, val associatedBundleItems: List<ZyncAssociatedBundleItem>, val isTaxExempted: Boolean, val isAvailable: Boolean, val isBillable: Boolean, val locations: List<ZyncProductLocationAvailability> = listOf(), val category: ZyncProductCategory? = null, val productMarkup: ZyncProductMarkup? = null, val unitPricePreMarkup: Double? = null, val availableQuantity: Double? = null, val bundleItemBaseQuantity: Double? = null, val masterCustomTax: ZyncLineItemCustomTax? = null, val associatedToModule: ZuperModule? = null)
Link copied to clipboard
data class ZyncProduct(val productUid: String, val productName: String, val productId: String? = null, val prefix: String? = null, val productDescription: String? = null, val productImage: String? = null, val productBarCode: String? = null, val productType: String, val brand: String? = null, val specification: String? = null, val price: Double? = null, val purchasePrice: Double? = null, val currency: String? = null, val hasCustomTax: Boolean = false, val tax: ZyncLineItemCustomTax? = null, val isBillable: Boolean = true, val quantity: Double = 0.0, val minQuantity: Double = 0.0, val uom: String? = null, val isAvailable: Boolean = true, val pricingLevel: String? = null, val markupValue: Double? = null, val markupType: String? = null, val attachments: List<ZyncAttachment> = emptyList(), val bundleItems: List<ZyncProductBundleItem> = emptyList(), val locationItems: List<ZyncProductLocationItem> = emptyList(), val category: ZyncProductCategory? = null, val createdAt: String? = null, val updatedAt: String? = null, val isDeleted: Boolean = false, val customFields: List<ZyncFormField> = emptyList())

Simplified domain model representing a Product in the Zuper system. Used for basic product operations and synchronization.

Link copied to clipboard
data class ZyncProductBundleItem(val productUid: String, val productCode: String?, val prefix: String?, val productName: String, val productImage: String?, val purchasePrice: Double?, val price: Double?, val productDescription: String?, val productType: String?, val uom: String?, val currency: String?, val markup: ZyncProductMarkup?, val tax: ZyncLineItemCustomTax?, val quantity: Double = 1.0, val productCategory: ZyncProductCategory?, val isAvailable: Boolean, val isBillable: Boolean)

Represents a bundle item (component product) within a bundle product.

Link copied to clipboard
data class ZyncProductCategory(val categoryUid: String, val name: String, val icon: String?)
Link copied to clipboard
data class ZyncProductLocationItem(val locationUid: String, val locationName: String, val locationType: String? = null, val locationDescription: String? = null, val locationAccess: String? = null, val quantity: Double = 0.0, val minQuantity: Double = 0.0, val serialNumbers: List<String> = emptyList())

Represents product inventory at a specific location.

Link copied to clipboard
data class ZyncProductMarkup(val markupValue: Double, val markupType: ZyncProductMarkupType)
Link copied to clipboard