Перейти к содержанию

Кооперативные участки

Кооперативный участок — это структурное подразделение кооператива, объединяющее пайщиков на основе географического или функционального признака. Он имеет председателя, который управляет участком, а также может иметь отдельные внутренние правила, активы и обязательства в рамках общей кооперативной структуры. Кооперативный участок действует в соответствии с уставом кооператива, но может обладать автономией в операционной деятельности, обеспечивая локальное самоуправление.

Кооперативный участок может функцонионировать как пункт выдачи заказов, где председатель или его доверенные лица принимают и отпускают имущество по доверенности от председателя кооператива. Кооперативным участкам автоматически доступны все целевые потребительские программы кооператива.

На текущий момент образование кооперативных участков юридически производится за пределами платформы MONO и Кооперативной Экономики. Это связано с тем, что логика кооперативных смарт-контрактов, отвечающая за корректную организацию кооперативного участка еще не реализована.

Однако, платформа сегодня позволяет добавлять кооперативные участки, организованные за её пределами, и использовать их как пункты выдачи заказов или для других целей, например, для распределения пайщиков при переходе на мажоритарную систему голосования.

Когда в кооперативе на платформе образовано больше 3 кооперативных участков, то он автоматически переходит на двухэтапную (мажоритарную) систему проведения общих собраний. Принцип работы мажоритарной системы голосования на общих собраниях подробно рассматривается на страницах методологии Кооперативной Экономики.

При переходе на мажоритарную систему голосования, каждому пайщику необходимо выбрать кооперативный участок. Выяснить, выбрал ли пайщик кооперативный участок можно с помощью запроса получения аккаунта, где в объекте ParticipantAccount в строке braname должно быть задано имя кооперативного участка. Если кооператив мажоритарен, а braname у пайщика не задан, то для него будет ограничена возможность участия в общих собраниях.

Выяснить, мажоритарен ли кооператив, возможно получением объекта системной информации, где в объекте CooperativeOperatorAccount в строке is_branched указано является ли кооператив мажоритарным. Данную опцию необходимо уточнять в процессе регистрации пайщика, т.к. после перехода на мажоритарную систему управления система будет требовать установки кооперативного участка сразу при регистрации.

Добавление кооперативных участков осуществляется на основании документа, подтверждающего их организацию, председателем совета. Председатель совета может удалить или отредактировать кооперативный участок, изменить председателя кооперативного участка и назначать/снимать доверенных лиц кооперативного участка (не больше 3), которые будут иметь возможность подписывать документы о приёме-выдачи имущества на кооперативном участке наравне с председателем кооперативного участка.

После реализации кооперативных смарт-контрактов, отвечающих за полное управление кооперативными участками, многие из методов на этой страницы будут заменены.

Получить список кооперативных участков

🛠️ SDK: Queries.Branches.GetBranches | 🔗 GraphQL API: Query.getBranches

Поля trusted и trustee содержат персональную о председателе кооператива и его доверенных лицах, и могут быть получены только председателем кооператива или членом совета. Пользователи с ролью User при запросе этих полей получат ошибку 401 Unathorized.

import { Queries } from '@coopenomics/sdk'; 

const variables = {
  data: {
    braname?: <null | string>; // Фильтр по имени аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
  };
};

const { [Queries.Branches.GetBranches.name]: result } = await client.Query(
  Queries.Branches.GetBranches.query,
  { variables }
);

Запрос 🛠️ SDK: Queries.Branches.GetPublicBranches позволяет отдельно запрашивать только публичную информацию о кооперативных участках и она может использоваться пользователями с ролью User, в то время как запрос 🛠️ SDK: Queries.Branches.GetBranches получает подробную информацию о председателе кооперативного участка и доверенных им лицах, и может быть использован только лицами, обладающими для этого достаточными правами доступа.

Результат:

interface IOutput {
  getBranches: <{
      bank_account: {
        created_at: <unknown>; // Дата создания
        data: {
          account_number: <string>; // Номер банковского счета
          bank_name: <string>; // Название банка
          card_number?: <null | string>; // Номер карты
          currency: <string>; // Валюта счета
          details: {
            bik: <string>; // БИК банка
            corr: <string>; // Корреспондентский счет
            kpp: <string>; // КПП банка
          };
        };
        is_default: <boolean>; // Флаг основного метода платежа, который отображается в документах
        method_id: <string>; // Идентификатор метода оплаты
        method_type: <string>; // Тип метода оплаты
        updated_at: <unknown>; // Дата обновления
        username: <string>; // Имя пользователя, к которому привязан метод оплаты
      };
      braname: <string>; // Уникальное имя кооперативного участка
      city: <string>; // Город
      coopname: <string>; // Имя аккаунта кооператива
      country: <string>; // Страна
      details: {
        inn: <string>; // ИНН
        kpp: <string>; // КПП
        ogrn: <string>; // ОГРН
      };
      email: <string>; // Email
      fact_address: <string>; // Фактический адрес
      full_address: <string>; // Полный адрес
      full_name: <string>; // Полное название организации
      phone: <string>; // Телефон
      represented_by: {
        based_on: <string>; // На основании чего действует
        first_name: <string>; // Имя
        last_name: <string>; // Фамилия
        middle_name: <string>; // Отчество
        position: <string>; // Должность
      };
      short_name: <string>; // Краткое название организации
      trusted: <{
          birthdate: <string>; // Дата рождения
          email: <string>; // Email
          first_name: <string>; // Имя
          full_address: <string>; // Полный адрес
          last_name: <string>; // Фамилия
          middle_name: <string>; // Отчество
          passport?: {
            code: <string>; // Код подразделения
            issued_at: <string>; // Дата выдачи
            issued_by: <string>; // Кем выдан
            number: <number>; // Номер паспорта
            series: <number>; // Серия паспорта
          };
          phone: <string>; // Телефон
          username: <string>; // Имя аккаунта
        }[]>; // Доверенные аккаунты
      trustee: {
        birthdate: <string>; // Дата рождения
        email: <string>; // Email
        first_name: <string>; // Имя
        full_address: <string>; // Полный адрес
        last_name: <string>; // Фамилия
        middle_name: <string>; // Отчество
        passport?: {
          code: <string>; // Код подразделения
          issued_at: <string>; // Дата выдачи
          issued_by: <string>; // Кем выдан
          number: <number>; // Номер паспорта
          series: <number>; // Серия паспорта
        };
        phone: <string>; // Телефон
        username: <string>; // Имя аккаунта
      };
      type: <string>; // Тип организации
    }[]>; // Получить список кооперативных участков
}

Добавить кооперативный участок

🛠️ SDK: Mutations.Branches.CreateBranch | 🔗 GraphQL API: Mutation.createBranch

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    based_on: <string>; // Документ, на основании которого действует Уполномоченный (решение совета №СС-.. от ..)
    braname: <string>; // Имя аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
    email: <string>; // Электронная почта
    fact_address: <string>; // Фактический адрес
    full_name: <string>; // Полное имя организации кооперативного участка
    phone: <string>; // Телефон
    short_name: <string>; // Краткое имя организации кооперативного участка
    trustee: <string>; // Имя аккаунта уполномоченного (председателя) кооперативного участка
  };
};

const { [Mutations.Branches.CreateBranch.name]: result } = await client.Mutation(
  Mutations.Branches.CreateBranch.mutation,
  { variables }
);

Результат:

interface IOutput {
  createBranch: {
    bank_account: {
      created_at: <unknown>; // Дата создания
      data: {
        account_number: <string>; // Номер банковского счета
        bank_name: <string>; // Название банка
        card_number?: <null | string>; // Номер карты
        currency: <string>; // Валюта счета
        details: {
          bik: <string>; // БИК банка
          corr: <string>; // Корреспондентский счет
          kpp: <string>; // КПП банка
        };
      };
      is_default: <boolean>; // Флаг основного метода платежа, который отображается в документах
      method_id: <string>; // Идентификатор метода оплаты
      method_type: <string>; // Тип метода оплаты
      updated_at: <unknown>; // Дата обновления
      username: <string>; // Имя пользователя, к которому привязан метод оплаты
    };
    braname: <string>; // Уникальное имя кооперативного участка
    city: <string>; // Город
    coopname: <string>; // Имя аккаунта кооператива
    country: <string>; // Страна
    details: {
      inn: <string>; // ИНН
      kpp: <string>; // КПП
      ogrn: <string>; // ОГРН
    };
    email: <string>; // Email
    fact_address: <string>; // Фактический адрес
    full_address: <string>; // Полный адрес
    full_name: <string>; // Полное название организации
    phone: <string>; // Телефон
    represented_by: {
      based_on: <string>; // На основании чего действует
      first_name: <string>; // Имя
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      position: <string>; // Должность
    };
    short_name: <string>; // Краткое название организации
    trusted: <{
        birthdate: <string>; // Дата рождения
        email: <string>; // Email
        first_name: <string>; // Имя
        full_address: <string>; // Полный адрес
        last_name: <string>; // Фамилия
        middle_name: <string>; // Отчество
        passport?: {
          code: <string>; // Код подразделения
          issued_at: <string>; // Дата выдачи
          issued_by: <string>; // Кем выдан
          number: <number>; // Номер паспорта
          series: <number>; // Серия паспорта
        };
        phone: <string>; // Телефон
        username: <string>; // Имя аккаунта
      }[]>; // Доверенные аккаунты
    trustee: {
      birthdate: <string>; // Дата рождения
      email: <string>; // Email
      first_name: <string>; // Имя
      full_address: <string>; // Полный адрес
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      passport?: {
        code: <string>; // Код подразделения
        issued_at: <string>; // Дата выдачи
        issued_by: <string>; // Кем выдан
        number: <number>; // Номер паспорта
        series: <number>; // Серия паспорта
      };
      phone: <string>; // Телефон
      username: <string>; // Имя аккаунта
    };
    type: <string>; // Тип организации
  };
}

Удалить кооперативный участок

🛠️ SDK: Mutations.Branches.DeleteBranch | 🔗 GraphQL API: Mutation.deleteBranch

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    braname: <string>; // Имя аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
  };
};

const { [Mutations.Branches.DeleteBranch.name]: result } = await client.Mutation(
  Mutations.Branches.DeleteBranch.mutation,
  { variables }
);

Результат:

interface IOutput {
  deleteBranch: <boolean>; // Удалить кооперативный участок
}

Добавить доверенное лицо кооперативного участка

🛠️ SDK: Mutations.Branches.AddTrustedAccount | 🔗 GraphQL API: Mutation.addTrustedAccount

Доверенное лицо устанавливается с помощью мутации AddTrustedAccount с передачей имени аккаунта доверенного лица в качестве аргумента. Также, необходимо передать имя кооператива и имя кооперативного участка, в котором добавляется доверенное лицо. Вызвать мутацию может только председатель совета кооператива.

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    braname: <string>; // Имя аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
    trusted: <string>; // Имя аккаунта доверонного лица, который уполномачивается председателем кооперативного участка на совершение действий
  };
};

const { [Mutations.Branches.AddTrustedAccount.name]: result } = await client.Mutation(
  Mutations.Branches.AddTrustedAccount.mutation,
  { variables }
);

Результат:

interface IOutput {
  addTrustedAccount: {
    bank_account: {
      created_at: <unknown>; // Дата создания
      data: {
        account_number: <string>; // Номер банковского счета
        bank_name: <string>; // Название банка
        card_number?: <null | string>; // Номер карты
        currency: <string>; // Валюта счета
        details: {
          bik: <string>; // БИК банка
          corr: <string>; // Корреспондентский счет
          kpp: <string>; // КПП банка
        };
      };
      is_default: <boolean>; // Флаг основного метода платежа, который отображается в документах
      method_id: <string>; // Идентификатор метода оплаты
      method_type: <string>; // Тип метода оплаты
      updated_at: <unknown>; // Дата обновления
      username: <string>; // Имя пользователя, к которому привязан метод оплаты
    };
    braname: <string>; // Уникальное имя кооперативного участка
    city: <string>; // Город
    coopname: <string>; // Имя аккаунта кооператива
    country: <string>; // Страна
    details: {
      inn: <string>; // ИНН
      kpp: <string>; // КПП
      ogrn: <string>; // ОГРН
    };
    email: <string>; // Email
    fact_address: <string>; // Фактический адрес
    full_address: <string>; // Полный адрес
    full_name: <string>; // Полное название организации
    phone: <string>; // Телефон
    represented_by: {
      based_on: <string>; // На основании чего действует
      first_name: <string>; // Имя
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      position: <string>; // Должность
    };
    short_name: <string>; // Краткое название организации
    trusted: <{
        birthdate: <string>; // Дата рождения
        email: <string>; // Email
        first_name: <string>; // Имя
        full_address: <string>; // Полный адрес
        last_name: <string>; // Фамилия
        middle_name: <string>; // Отчество
        passport?: {
          code: <string>; // Код подразделения
          issued_at: <string>; // Дата выдачи
          issued_by: <string>; // Кем выдан
          number: <number>; // Номер паспорта
          series: <number>; // Серия паспорта
        };
        phone: <string>; // Телефон
        username: <string>; // Имя аккаунта
      }[]>; // Доверенные аккаунты
    trustee: {
      birthdate: <string>; // Дата рождения
      email: <string>; // Email
      first_name: <string>; // Имя
      full_address: <string>; // Полный адрес
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      passport?: {
        code: <string>; // Код подразделения
        issued_at: <string>; // Дата выдачи
        issued_by: <string>; // Кем выдан
        number: <number>; // Номер паспорта
        series: <number>; // Серия паспорта
      };
      phone: <string>; // Телефон
      username: <string>; // Имя аккаунта
    };
    type: <string>; // Тип организации
  };
}

Удалить доверенное лицо кооперативного участка

🛠️ SDK: Mutations.Branches.DeleteTrustedAccount | 🔗 GraphQL API: Mutation.deleteTrustedAccount

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    braname: <string>; // Имя аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
    trusted: <string>; // Имя аккаунта доверонного лица, у которого отзывается право подписи за председателя кооперативного участка
  };
};

const { [Mutations.Branches.DeleteTrustedAccount.name]: result } = await client.Mutation(
  Mutations.Branches.DeleteTrustedAccount.mutation,
  { variables }
);

Результат:

interface IOutput {
  deleteTrustedAccount: {
    bank_account: {
      created_at: <unknown>; // Дата создания
      data: {
        account_number: <string>; // Номер банковского счета
        bank_name: <string>; // Название банка
        card_number?: <null | string>; // Номер карты
        currency: <string>; // Валюта счета
        details: {
          bik: <string>; // БИК банка
          corr: <string>; // Корреспондентский счет
          kpp: <string>; // КПП банка
        };
      };
      is_default: <boolean>; // Флаг основного метода платежа, который отображается в документах
      method_id: <string>; // Идентификатор метода оплаты
      method_type: <string>; // Тип метода оплаты
      updated_at: <unknown>; // Дата обновления
      username: <string>; // Имя пользователя, к которому привязан метод оплаты
    };
    braname: <string>; // Уникальное имя кооперативного участка
    city: <string>; // Город
    coopname: <string>; // Имя аккаунта кооператива
    country: <string>; // Страна
    details: {
      inn: <string>; // ИНН
      kpp: <string>; // КПП
      ogrn: <string>; // ОГРН
    };
    email: <string>; // Email
    fact_address: <string>; // Фактический адрес
    full_address: <string>; // Полный адрес
    full_name: <string>; // Полное название организации
    phone: <string>; // Телефон
    represented_by: {
      based_on: <string>; // На основании чего действует
      first_name: <string>; // Имя
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      position: <string>; // Должность
    };
    short_name: <string>; // Краткое название организации
    trusted: <{
        birthdate: <string>; // Дата рождения
        email: <string>; // Email
        first_name: <string>; // Имя
        full_address: <string>; // Полный адрес
        last_name: <string>; // Фамилия
        middle_name: <string>; // Отчество
        passport?: {
          code: <string>; // Код подразделения
          issued_at: <string>; // Дата выдачи
          issued_by: <string>; // Кем выдан
          number: <number>; // Номер паспорта
          series: <number>; // Серия паспорта
        };
        phone: <string>; // Телефон
        username: <string>; // Имя аккаунта
      }[]>; // Доверенные аккаунты
    trustee: {
      birthdate: <string>; // Дата рождения
      email: <string>; // Email
      first_name: <string>; // Имя
      full_address: <string>; // Полный адрес
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      passport?: {
        code: <string>; // Код подразделения
        issued_at: <string>; // Дата выдачи
        issued_by: <string>; // Кем выдан
        number: <number>; // Номер паспорта
        series: <number>; // Серия паспорта
      };
      phone: <string>; // Телефон
      username: <string>; // Имя аккаунта
    };
    type: <string>; // Тип организации
  };
}

Изменить кооперативный участок

🛠️ SDK: Mutations.Branches.EditBranch | 🔗 GraphQL API: Mutation.editBranch

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    based_on: <string>; // Документ, на основании которого действует Уполномоченный (решение совета №СС-.. от ..)
    braname: <string>; // Имя аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
    email: <string>; // Электронная почта
    fact_address: <string>; // Фактический адрес
    full_name: <string>; // Полное имя организации кооперативного участка
    phone: <string>; // Телефон
    short_name: <string>; // Краткое имя организации кооперативного участка
    trustee: <string>; // Имя аккаунта уполномоченного (председателя) кооперативного участка
  };
};

const { [Mutations.Branches.EditBranch.name]: result } = await client.Mutation(
  Mutations.Branches.EditBranch.mutation,
  { variables }
);

Результат:

interface IOutput {
  editBranch: {
    bank_account: {
      created_at: <unknown>; // Дата создания
      data: {
        account_number: <string>; // Номер банковского счета
        bank_name: <string>; // Название банка
        card_number?: <null | string>; // Номер карты
        currency: <string>; // Валюта счета
        details: {
          bik: <string>; // БИК банка
          corr: <string>; // Корреспондентский счет
          kpp: <string>; // КПП банка
        };
      };
      is_default: <boolean>; // Флаг основного метода платежа, который отображается в документах
      method_id: <string>; // Идентификатор метода оплаты
      method_type: <string>; // Тип метода оплаты
      updated_at: <unknown>; // Дата обновления
      username: <string>; // Имя пользователя, к которому привязан метод оплаты
    };
    braname: <string>; // Уникальное имя кооперативного участка
    city: <string>; // Город
    coopname: <string>; // Имя аккаунта кооператива
    country: <string>; // Страна
    details: {
      inn: <string>; // ИНН
      kpp: <string>; // КПП
      ogrn: <string>; // ОГРН
    };
    email: <string>; // Email
    fact_address: <string>; // Фактический адрес
    full_address: <string>; // Полный адрес
    full_name: <string>; // Полное название организации
    phone: <string>; // Телефон
    represented_by: {
      based_on: <string>; // На основании чего действует
      first_name: <string>; // Имя
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      position: <string>; // Должность
    };
    short_name: <string>; // Краткое название организации
    trusted: <{
        birthdate: <string>; // Дата рождения
        email: <string>; // Email
        first_name: <string>; // Имя
        full_address: <string>; // Полный адрес
        last_name: <string>; // Фамилия
        middle_name: <string>; // Отчество
        passport?: {
          code: <string>; // Код подразделения
          issued_at: <string>; // Дата выдачи
          issued_by: <string>; // Кем выдан
          number: <number>; // Номер паспорта
          series: <number>; // Серия паспорта
        };
        phone: <string>; // Телефон
        username: <string>; // Имя аккаунта
      }[]>; // Доверенные аккаунты
    trustee: {
      birthdate: <string>; // Дата рождения
      email: <string>; // Email
      first_name: <string>; // Имя
      full_address: <string>; // Полный адрес
      last_name: <string>; // Фамилия
      middle_name: <string>; // Отчество
      passport?: {
        code: <string>; // Код подразделения
        issued_at: <string>; // Дата выдачи
        issued_by: <string>; // Кем выдан
        number: <number>; // Номер паспорта
        series: <number>; // Серия паспорта
      };
      phone: <string>; // Телефон
      username: <string>; // Имя аккаунта
    };
    type: <string>; // Тип организации
  };
}

Сгенерировать документ, подтверждающий выбор кооперативного участка

🛠️ SDK: Mutations.Branches.GenerateSelectBranchDocument | 🔗 GraphQL API: Mutation.generateSelectBranchDocument

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    binary: <string>; // Бинарное содержимое документа (base64)
    full_title: <string>; // Полное название документа
    hash: <string>; // Хэш документа
    html: <string>; // HTML содержимое документа
    meta: {
      block_num: <number>; // Номер блока, на котором был создан документ
      braname: <string>; // Идентификатор имени аккаунта кооперативного участка
      coopname: <string>; // Название кооператива, связанное с документом
      created_at: <string>; // Дата и время создания документа
      generator: <string>; // Имя генератора, использованного для создания документа
      lang: <ru>; // Язык документа
      links: <string[]>; // Ссылки, связанные с документом
      registry_id: <number>; // ID документа в реестре
      timezone: <string>; // Часовой пояс, в котором был создан документ
      title: <string>; // Название документа
      username: <string>; // Имя пользователя, создавшего документ
      version: <string>; // Версия генератора, использованного для создания документа
    };
  };
  options?: {
    skip_save?: <null | boolean>; // Пропустить сохранение
  };
};

const { [Mutations.Branches.GenerateSelectBranchDocument.name]: result } = await client.Mutation(
  Mutations.Branches.GenerateSelectBranchDocument.mutation,
  { variables }
);

Результат:

interface IOutput {
  generateSelectBranchDocument: {
    binary: <string>; // Бинарное содержимое документа (base64)
    full_title: <string>; // Полное название документа
    hash: <string>; // Хэш документа
    html: <string>; // HTML содержимое документа
    meta: {
      block_num: <number>; // Номер блока, на котором был создан документ
      braname: <string>; // Идентификатор имени аккаунта кооперативного участка
      coopname: <string>; // Название кооператива, связанное с документом
      created_at: <string>; // Дата и время создания документа
      generator: <string>; // Имя генератора, использованного для создания документа
      lang: <ru>; // Язык документа
      links: <string[]>; // Ссылки, связанные с документом
      registry_id: <number>; // ID документа в реестре
      timezone: <string>; // Часовой пояс, в котором был создан документ
      title: <string>; // Название документа
      username: <string>; // Имя пользователя, создавшего документ
      version: <string>; // Версия генератора, использованного для создания документа
    };
  };
}

Выбрать кооперативный участок

🛠️ SDK: Mutations.Branches.SelectBranch | 🔗 GraphQL API: Mutation.selectBranch

import { Mutations } from '@coopenomics/sdk'; 

const variables = {
  data: {
    braname: <string>; // Имя аккаунта кооперативного участка
    coopname: <string>; // Имя аккаунта кооператива
    document: {
      hash: <string>; // Хэш документа
      meta: {
        block_num: <number>; // Номер блока, на котором был создан документ
        braname: <string>; // Идентификатор имени аккаунта кооперативного участка
        coopname: <string>; // Название кооператива, связанное с документом
        created_at: <string>; // Дата и время создания документа
        generator: <string>; // Имя генератора, использованного для создания документа
        lang: <string>; // Язык документа
        links: <string[]>; // Ссылки, связанные с документом
        registry_id: <number>; // ID документа в реестре
        timezone: <string>; // Часовой пояс, в котором был создан документ
        title: <string>; // Название документа
        username: <string>; // Имя пользователя, создавшего документ
        version: <string>; // Версия генератора, использованного для создания документа
      };
      public_key: <string>; // Публичный ключ документа
      signature: <string>; // Подпись документа
    };
    username: <string>; // Имя аккаунта пользователя
  };
};

const { [Mutations.Branches.SelectBranch.name]: result } = await client.Mutation(
  Mutations.Branches.SelectBranch.mutation,
  { variables }
);

Результат:

interface IOutput {
  selectBranch: <boolean>; // Выбрать кооперативный участок
}