# Tier, Membership, Discount & COGS ## Tier ### Tables **product_variant_tier_quantities** | Name | Type | Desc | | ------------------ | ------------ |:---------- | | product_variant_id | int | index | | code | varchar(255) | index uniq | | name | varchar(255) | | | min_qty | int | | | max_qty | int | | | margin | decimal(5,2) | | ## Membership & Discount **memberships** | Name | Type | Desc | |:------------------------ | ------------ | ------------- | | code | varchar(255) | index uniq | | name | varchar(255) | index | | discount_percentage | int | | | commisions_percentage | int | | | is_discount_customable | bool | default: true | | is_commission_customable | bool | default:true | **product_variant_memberships** | Name | Type | Desc | |:-------------------- | ---- | ----- | | membership_id | int | index | | product_variant_id | int | index | | discount_percentage | int | | | commisions_percentage | int | | **delivery_options** | Name | Type | Desc | | --------- | ------------ |:--------------------------- | | name | jsonb | default: {"id":"", "en":""} | | code | varchar(255) | index uniq | | is_active | bool | index default:true | **product_type_service_times** | Name | Type | Desc | | --------------------- |:------------- |:----- | | product_type_id | int | index | | delivery_option_id | int | index | | duration | int | | | additional_percentage | int | | | min_charge | decimal(14,2) | | | max_charge | decimal(14,2) | | **product_variant_service_times** | Name | Type | Desc | |:--------------------- |:------------- |:----- | | product_variant_id | int | index | | delivery_option_name | varchar(255) | | | duration | int | | | additional_percentage | int | | | min_charge | decimal(14,2) | | | max_charge | decimal(14,2) | | ## SKU **product_skus** | column_name | data_type | desc | | ------------------- |:----------------------- | ---------- | | product_variant_id | int | index | | sku_code | varchar(255) | index uniq | | is_active | bool | index | | spec_set (new) | jsonb | index | | is_custom (new) | bool | index | | deleted_at | timestamp with timezone | index | **product_sku_specs** | Column 1 | Column 2 | Column 3 | |:-------------- | --------------------------------- |:-------- | | product_sku_id | int | index | | spec_key_id | int | index | | spec_value_id | int (nullable) | index | | position | int | | | custom (new) | jsonb { "width": 7, "length": 7 } | index | | deleted_at | timestamp with timezone | index | ## COGS **product_variants** | Name | Type | Desc | | ------------ | ------------ |:---------------------- | | --- | --- | --- | | price_method | varchar(255) | 'manual', 'calculator' | **product_variant_sku_prices** | Name | Type | Desc | | ------------------------ | ----------------------- | ----- | | product_sku_id | int | index | | min_qty | int | | | max_qty | int | | | cogs | decimal(14,2) | | | speed_in_hours | decimal(4,1) | | | expired_at | timestamp with timezone | |