# Part of Odoo. See LICENSE file for full copyright and licensing details.

class DeliveryPackage:
    """ Each provider need similar information about its packages. """
    def __init__(self, commodities, weight, package_type, name=None, total_cost=0, currency=None, picking=False, order=False):
        """ The UOMs are based on the config parameters, which is very convenient:
        we do not need to keep those stored."""
        self.picking_id = picking
        self.order_id = order
        self.company_id = order and order.company_id or picking and picking.company_id
        self.commodities = commodities or []  # list of DeliveryCommodity objects
        self.weight = weight
        self.dimension = {
            'length': package_type.packaging_length,
            'width': package_type.width,
            'height': package_type.height
        }
        self.packaging_type = package_type.shipper_package_code or False
        self.name = name
        self.total_cost = total_cost
        self.currency_id = currency


class DeliveryCommodity:
    """ Commodities information are needed for Commercial invoices with each provider. """
    def __init__(self, product, amount, monetary_value, country_of_origin):
        self.product_id = product
        self.qty = amount
        self.monetary_value = monetary_value  # based on company currency
        self.country_of_origin = country_of_origin