Files

Конфигурация для инициализации кооператива

example-config.ts

Пример конфигурации в формате TypeScript для инициализации кооператива. Этот файл находится в src/scripts/example-config.ts и содержит типизированные данные с автодополнением.

Использование

  1. Скопируйте src/scripts/example-config.ts в удобное место
  2. Измените данные в файле (используйте автодополнение TypeScript)
  3. Запустите инициализацию:
    npm run init:cooperative ./path/to/your-config.ts
    

Или используйте функцию createCooperativeConfig для создания конфигурации:

import { createCooperativeConfig } from './src/scripts/example-config';

const myConfig = createCooperativeConfig({
  short_name: 'Мой Новый Кооператив',
  email: 'info@mynewcoop.ru',
  city: 'Санкт-Петербург',
  // ... другие поля
});

Обязательные поля

Все поля в конфигурации обязательны для заполнения:

  • organization_data: Данные организации кооператива

organization_data

  • short_name: Краткое наименование организации
  • full_name: Полное наименование организации
  • type: Тип организации (coop, prodcoop, ooo, oao, zao, pao, ao)
  • email: Email организации
  • phone: Телефон представителя
  • country: Страна (обычно "Russia")
  • city: Город
  • full_address: Юридический адрес
  • fact_address: Фактический адрес

details (реквизиты организации)

  • inn: ИНН (10 или 12 цифр)
  • kpp: КПП (9 цифр)
  • ogrn: ОГРН (13 или 15 цифр)

represented_by (представитель)

  • first_name: Имя представителя
  • last_name: Фамилия представителя
  • middle_name: Отчество представителя
  • position: Должность представителя
  • based_on: Основание полномочий

bank_account (банковский счет)

  • bank_name: Наименование банка
  • account_number: Номер счета (20 цифр)
  • currency: Валюта счета (обычно "RUB")
bank_account.details
  • bik: БИК банка (9 цифр)
  • corr: Корреспондентский счет (20 цифр)
  • kpp: КПП банка (9 цифр)

Важные замечания

  1. Server Secret: Автоматически берется из переменной окружения SERVER_SECRET
  2. GraphQL Endpoint: Всегда использует http://localhost:3000/graphql
  3. Валидация: Все поля проходят строгую валидацию перед отправкой
  4. Одноразовость: Инициализация кооператива может быть выполнена только один раз
  5. Безопасность: После инициализации данные нельзя изменить

Пример успешного выполнения

$ npm run init:cooperative ./cooperative-config.json
🚀 Начинаем инициализацию кооператива...
✅ Конфигурация загружена
🔗 Подключено к GraphQL API
📤 Отправляем запрос на инициализацию...
✅ Кооператив успешно инициализирован!
📊 Результат: {
  "initSystem": {
    "coopname": "mycoop",
    "system_status": "initialized",
    "blockchain_info": {
      "head_block_num": 12345,
      "head_block_time": "2024-01-01T00:00:00.000Z"
    }
  }
}

Возможные ошибки

  • "SERVER_SECRET не найден в переменных окружения": Убедитесь, что переменная окружения SERVER_SECRET установлена
  • "Организация уже инициализирована": Кооператив уже был инициализирован ранее
  • "Connection refused": Убедитесь, что контроллер запущен на http://localhost:3000
  • Ошибки валидации: Проверьте заполнение всех обязательных полей