# This file was generated by liblab | https://liblab.com/

from __future__ import annotations
from .utils.json_map import JsonMap
from .base import BaseModel
from .transportation_charges_gross_charge import TransportationChargesGrossCharge
from .transportation_charges_discount_amount import TransportationChargesDiscountAmount
from .transportation_charges_net_charge import TransportationChargesNetCharge


@JsonMap(
    {
        "gross_charge": "GrossCharge",
        "discount_amount": "DiscountAmount",
        "discount_percentage": "DiscountPercentage",
        "net_charge": "NetCharge",
    }
)
class FrsShipmentDataTransportationCharges(BaseModel):
    """Transportation Charges Container

    :param gross_charge: Gross Transportation Charges Container
    :type gross_charge: TransportationChargesGrossCharge
    :param discount_amount: Discount Container
    :type discount_amount: TransportationChargesDiscountAmount
    :param discount_percentage: Discount Percentage
    :type discount_percentage: str
    :param net_charge: Net Transportation Rate Container
    :type net_charge: TransportationChargesNetCharge
    """

    def __init__(
        self,
        gross_charge: TransportationChargesGrossCharge,
        discount_amount: TransportationChargesDiscountAmount,
        discount_percentage: str,
        net_charge: TransportationChargesNetCharge,
    ):
        self.gross_charge = self._define_object(
            gross_charge, TransportationChargesGrossCharge
        )
        self.discount_amount = self._define_object(
            discount_amount, TransportationChargesDiscountAmount
        )
        self.discount_percentage = discount_percentage
        self.net_charge = self._define_object(
            net_charge, TransportationChargesNetCharge
        )
