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

from __future__ import annotations
from typing import List
from .utils.json_map import JsonMap
from .base import BaseModel
from .cost_quote import CostQuote


@JsonMap({})
class Monthly(BaseModel):
    """Monthly

    :param costs: costs, defaults to None
    :type costs: List[CostQuote], optional
    :param total: Total costs in local currency, defaults to None
    :type total: float, optional
    :param total_usd: Total costs in USD, defaults to None
    :type total_usd: float, optional
    """

    def __init__(
        self,
        costs: List[CostQuote] = None,
        total: float = None,
        total_usd: float = None,
    ):
        if costs is not None:
            self.costs = self._define_list(costs, CostQuote)
        if total is not None:
            self.total = total
        if total_usd is not None:
            self.total_usd = total_usd


@JsonMap({})
class BreakdownCostsQuote(BaseModel):
    """BreakdownCostsQuote

    :param monthly: monthly, defaults to None
    :type monthly: Monthly, optional
    """

    def __init__(self, monthly: Monthly = None):
        if monthly is not None:
            self.monthly = self._define_object(monthly, Monthly)
