from .template import Template


class Provider():
    description = (
        "Provider – единица описания поставщика услуг/ответственного лица "
        "за определенный ресурс (например, машину). "
        "По сути - это надстройка к клиентскому аккаунту, иллюстрирующая, "
        "что данный пользователь может выступать не только в роли потребителя. "
        "То есть, по тому, какие “провайдеры” находятся по идентификатору "
        "пользователя - можно установить конкретный список услуг "
        "данного пользователя."
    )

    # ID METASERVICE
    id_metaservice = Template.id_metaservice

    # DATA
    # FIXME: Добавить описание
    gap = ""
    requirements = (
        "требования для того, чтобы можно было предоставлять услуги любые в "
        "этом метасервисе в целом (самые строгие)"
    )
    status = (
        "статус пользователя в системе относительно прохождения проверок "
        "(activity_status) (может быть active только в том случае, если "
        "ticket, влияющий на статус - закрыт."
    )
    service_status = (
        "статус спецификации типа услуги, принимает значения Online, Offline, "
        "Preorder with Gap. Online/offline выставляются по проверке параметров "
        "и желанию пользователя (например, если пользователь переключает себя "
        "online, но по какой-то причине ему такую услугу оказывать запрещено - "
        "оно не переключится, то есть надо перед сменой значения этого поля "
        "всегда запускать проверку)"
    )
    location_type = (
        "статическая или динамическая локация оказания услуги. Если "
        "статическая, а исполнитель находится существенно за пределами "
        "локации - то тогда статус автоматом оффлайн для приема новых заявок."
    )
    default_location = (
        "локация по умолчанию для объекта."
    )

    # OTHER
    is_global = Template.is_global
    is_visible = Template.is_visible

    # FK
    user = (
        "уникальный идентификатор конкретного пользователя системы "
        "(meta-user), который будет оказывать услугу. Один пользователь может "
        "быть провайдером нескольких услуг. Статус провайдера означает, что с "
        "данным пользователем может быть установлена связь, как с исполнителем."
    )
    ticket_status = (
        "id последнего актуального тикета, касающийся статуса. Если он меняет "
        "статус на закрытый - вызывается проверка, которая смотрит, нет ли "
        "другого открытого по пользователю."
    )
    service = (
        "id услуги, которую предостовляют"
    )