--- tags: Offline Transaction --- # Database Schema ```plantuml package evm-product { entity product { id : char(36) model_id : bigint(20) code : text __ category_id_int : bigint(20) __ brand_id : char(36) brand_id_int : bigint(20) __ name : varchar(255) __dicount__ discount : decimal(5,2) discount_price : decimal(12,2) __reseller commission__ commission_price : decimal(12,2) commission_percentage : decimal(5,2) __evermos commission__ evermos_commission_percentage : decimal(5,2) evermos_commission_price : decimal(12,2) __vendor_commission__ vendor_commission_percentage : decimal(5,2) vendor_commission_price : decimal(12,2) __ active : bool } entity product_variant { id : char(36) id_int : bigint(20) sku : varchar(20) -- variant_parent_id : char(36) variant_parent_id_int : bigint(20) __ name : varchar(255) retail_price : decimal(12,2) discount_price : (12,2) active : bool __ cover_image : text --product-- product_id : char(36) model_id: bigint(20) } } package inv { entity product_variant_mapping { id : char(36) --child-- product_variant_id : char(36) product_variant_id_int : bigint(20) --parent-- product_variant_id_parent : char(36) product_variant_id_parent_int : bigint(20) -- stock_location_id_int : bigint(20) product_id_int : bigint(20) product_id_parent_int : bigint(20) } entity product_variant_stock <<P, cyan >> { id : char(36) -- product_variant_id : char(36) product_variant_id_int : bigint(20) -- stock_location_id_int: bigint(20) -- stock_on_hand : int(11) stock_reserved : int(11) stock_available : int(11) } } package evm { entity stock_location <<S, green >> { id : bigint(20) <<generated>> label : varchar(255) -- brandId: bigInt(20) password: text } entity brand <<B, orange >> { id : bigint(20) <<generated>> code : varchar(10) -- name: varchar(100) stockLocation: int(11) } brand::stockLocation ||--|{ stock_location::id stock_location::brandId||--||brand::id } product_variant_stock::stock_location_id_int||--||stock_location::id package evm_pos #line:pink { entity order #line:pink{ entity_id : char(36) order_code : varchar(60) __difference_price = total_purchase - total_item_price__ total_item_price : decimal(12,2) difference_price : decimal(12,2) total_purchase : decimal(12,2) __ purchased_at : datetime status : enum(done, cancel) __reason__ diff_price_reason_id : char(36) reason_text : char(255) __cashier__ cashier_type : char(36) cashier_ref_id : char(36) __metadata__ created_at : timestamp created_by : timestamp updated_at : timestamp updated_by : timestamp deleted_at : timestamp deleted_by : timestamp } entity order_detail #line:pink{ entity_id : char(36) order_id : char(36) order_code : varchar(60) __ __ product_variant_id : char(36) product_variant_id_int : bigint(20) sku_code: varchar(20) stock_location_id_int : bigint(20) sku_name: varchar(255) thumbnail: text __qty__ qty: int __unit price__ unit_value : decimal(12,2) __subtotal = unit value * qty__ subtotal : decimal(12,2) __metadata__ created_at : timestamp created_by : timestamp updated_at : timestamp updated_by : timestamp deleted_at : timestamp deleted_by : timestamp } order_detail::order_id}|--||order::entity_id entity reason { entity_id : char(36) reason : char(255) is_active : bool __metadata__ created_at : timestamp created_by : timestamp updated_at : timestamp updated_by : timestamp deleted_at : timestamp deleted_by : timestamp } order::diff_price_reason_id||--||reason::entity_id entity order_detail_snapshot { entity_id : char(36) order_detail_id : char(36) __variant__ id : char(36) new_id : char(36) product_model_id : bigint(20) product_parent_id : bigint(20) sku_name : varchar(255) sku_slug : varchar(255) sku_code : varchar(20) quantity : int __ cover_image : text __ normal_price : decimal(12,2) discount_price : decimal(12,2) reseller_price : decimal(12,2) customer_price : decimal(12,2) commission_price : decimal(12,2) commission_percentage : decimal(5,2) vendor_price : decimal(12,2) vendor_commission_percentage : decimal(5,2) vendor_commission_price : decimal(12,2) weight : int height : int length : int width : int is_cod : bool is_active : bool size_id: bigInt(20) size_label : varchar(20) color_id: bigInt(20) color_label : varchar(20) __Stock Location__ stock_location_id : bigint(20) stock_location_label : varchar(255) stock_location_urban_id : bigint(20) stock_location_urban_name : varchar(255) stock_location_shipper_area_id : bigint(20) stock_location_is_marketplaceable : bool stock_location_courier_fee: decimal(12,2) stock_location_is_self_courier : bool stock_location_address : text stock_location_brand_id : bigint(20) __product__ product_id : bigint(20) product_discount_price : decimal(12,2) __reseller commission__ product_commission_price : decimal(12,2) product_commission_percentage : decimal(5,2) __brand__ product_is_flash_sale : bool product_brand_id : bigint(20) product_is_po : bool __metadata__ created_at : timestamp created_by : timestamp } order_detail::entity_id||--||order_detail_snapshot::order_detail_id } ```