from app.main.util.json_objects.json_serializable import JsonSerializable
from app.main.util.service_helpers.games.leadedge import leadedge_helper


class LECompanyHRDTO(JsonSerializable):

    def __init__(self):
        JsonSerializable.__init__(self)
        self.company_id = None
        self.round_id = None
        self.employees = None
        self.employees_variation = None
        self.total_payroll = None
        self.total_payroll_variation = None
        self.training_budget = None
        self.training_budget_variation = None
        self.bonus_budget = None
        self.bonus_budget_variation = None
        self.employees_array = None
        self.total_payrolls = None
        self.training_and_bonus_budgets = None

    def init(self, round_id, company_scenarios, company_results):
        company_scenario = company_scenarios[-1]
        company_result = company_results[-1]
        self.company_id = company_scenario.company_id
        self.round_id = round_id
        self.employees = company_result.number_of_employees
        self.employees_variation = company_result.number_of_employees_variation
        self.total_payroll = company_result.total_payroll
        self.total_payroll_variation = company_result.total_payroll_variation
        self.training_budget = company_scenario.opex_training_budget
        self.training_budget_variation = company_scenario.opex_training_budget_variation
        self.bonus_budget = company_scenario.opex_bonus_budget
        self.bonus_budget_variation = company_scenario.opex_bonus_budget_variation
        self.employees_array = leadedge_helper.init_employees_array(company_results)
        self.total_payrolls = leadedge_helper.init_total_payrolls(company_results)
        self.training_and_bonus_budgets = leadedge_helper.init_training_and_bonus_budgets(company_scenarios)