# Path: mollie/api/objects/base.py
# class ObjectBase(dict):
#     def __init__(self, data, client=None):
#         """
#         Create a new object from API result data.
#         """
#         super().__init__(data)
#         self.client = client
# 
#     def _get_property(self, name):
#         """Return the named property from dictionary values."""
#         if name not in self:
#             return None
#         return self[name]
# 
#     def _get_link(self, name):
#         """Return a link by its name."""
#         try:
#             return self["_links"][name]["href"]
#         except (KeyError, TypeError):
#             return None
# 
#     @classmethod
#     def get_object_name(cls):
#         name = cls.__name__.lower()
#         return f"{name}s"
# 
#     @classmethod
#     def get_resource_class(cls, client):
#         raise NotImplementedError  # pragma: no cover


from .base import ObjectBase
        from ..resources.onboarding import Onboarding as OnboardingResource


class Onboarding(ObjectBase):
    @classmethod
    def get_resource_class(cls, client):

        return OnboardingResource(client)

    STATUS_NEEDS_DATA = "needs-data"
    STATUS_IN_REVIEW = "in-review"  # Waiting for a valid mandate.
    STATUS_COMPLETED = "completed"

    @property
    def resource(self):
        return self._get_property("resource")

    @property
    def name(self):
        return self._get_property("name")

    @property
    def signed_up_at(self):
        return self._get_property("signedUpAt")


# Path: mollie/api/objects/base.py
# class ObjectBase(dict):
#     def __init__(self, data, client=None):
#         """
#         Create a new object from API result data.
#         """
#         super().__init__(data)
#         self.client = client
# 
#     def _get_property(self, name):
#         """Return the named property from dictionary values."""
#         if name not in self:
#             return None
#         return self[name]
# 
#     def _get_link(self, name):
#         """Return a link by its name."""
#         try:
#             return self["_links"][name]["href"]
#         except (KeyError, TypeError):
#             return None
# 
#     @classmethod
#     def get_object_name(cls):
#         name = cls.__name__.lower()
#         return f"{name}s"
# 
#     @classmethod
#     def get_resource_class(cls, client):
#         raise NotImplementedError  # pragma: no cover


# Path: mollie/api/objects/onboarding.py
from .base import ObjectBase
        from ..resources.onboarding import Onboarding as OnboardingResource



class Onboarding(ObjectBase):
    @classmethod
    def get_resource_class(cls, client):

        return OnboardingResource(client)

    STATUS_NEEDS_DATA = "needs-data"
    STATUS_IN_REVIEW = "in-review"  # Waiting for a valid mandate.
    STATUS_COMPLETED = "completed"

    @property
    def resource(self):
        return self._get_property("resource")

    @property
    def name(self):
        return self._get_property("name")

    @property
    def signed_up_at(self):
        return self._get_property("signedUpAt")


    @property