from typing import Union

from reportsdata.justificationreport import (
    JustificationReportGenerator,
    JustificationReportPresenter,
)


class ReportGenerator(object):

    @staticmethod
    def generate(
        mb_context,     # type: MBEasyContext
        pos_id,         # type: str
        *args           # type: Union[str, unicode]
    ):
        # type: (...) -> tuple

        generator = JustificationReportGenerator(
            pos_id=pos_id,
            data=args[0],
        )

        presenter = JustificationReportPresenter(
            columns=38,
        )

        return generator, presenter
