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

Промпт: Генерация списка компаний (Fairflow)

Используй этот промпт для генерации тестовых/демо-данных компаний в AI-инструментах (Claude, GPT, Gemini и т.п.) или для передачи разработчику seed-данных.


Контекст проекта

Fairflow — проектно-центричная модульная CRM-платформа. Компания (Company) — юридическое лицо / организация клиента. Компания связана с контактами (many-to-many), сделками и продажами. Все данные изолированы на уровне проекта.

Цель: сгенерировать список реалистичных российских компаний для seed-данных, импорта, тестирования UI или демо-режима.


Задание

Сгенерируй список из N компаний (N = 20–50 по умолчанию, или укажи иное количество). Каждая компания должна соответствовать структуре Fairflow и всем требованиям ниже.


Структура компании (поля)

Обязательные поля (Must Have)

Поле Тип Описание Пример
name string Полное наименование юрлица «ООО „Альфа“»
inn string ИНН (10 цифр — юрлицо, 12 — ИП) «7707049388»
ownerId string ID владельца записи «user-123»
ownerType enum «USER» или «DEPARTMENT» «USER»

Рекомендуемые поля (для полноты карточки)

Поле Тип Описание Пример
kpp string КПП (9 цифр) «770701001»
ogrn string ОГРН (13 цифр — юрлицо, 15 — ИП) «1027700132195»
legalAddress string Юридический адрес «123456, г. Москва, ул. Ленина, д. 1»
actualAddress string Фактический адрес «123456, г. Москва, ул. Ленина, д. 1, офис 101»
phone string Телефон (E.164 или +7 формат) «+7 495 123-45-67»
email string Email (домен используется для дедупликации) «info@alfa.ru»
website string Сайт «https://alfa.ru»
industry string Отрасль «IT», «Финансы», «Ритейл»
employeeCount number Численность сотрудников 150
notes string Примечание «Ключевой клиент с 2023»

Связи и системные поля

Поле Тип Описание
contactIds string[] Массив ID контактов (many-to-many)
tags string[] Теги для фильтрации
identityHash string Хеш для кросс-проектной идентификации (ИНН + domain) — генерируется системой

Требования к данным

1. Юридические форматы (Россия)

  • ООО — «ООО „Название“» (наиболее частый)
  • АО — «АО „Название“» (крупные компании)
  • ИП — «ИП Иванов Иван Иванович» (без кавычек в названии)
  • НКО — «АНО „Название“», «Фонд „Название“»

2. ИНН и реквизиты

  • ИНН юрлица: 10 цифр. Контрольная сумма должна быть валидной (алгоритм проверки ИНН РФ).
  • ИНН ИП: 12 цифр.
  • КПП: 9 цифр, первые 4 — код региона (77 — Москва, 78 — СПб, 52 — Нижний Новгород и т.д.).
  • ОГРН: 13 цифр (юрлицо) или 15 (ИП). Должен соответствовать ИНН по структуре.

Рекомендация: используй реальные форматы ИНН (можно сгенерировать валидные или взять из открытых источников). Избегай явно тестовых значений вроде «1234567890».

3. Дедуп-ключи (проверка дублей)

Система проверяет дубли по: - ИНН (уникален в рамках проекта) - Домен email (например, @alfa.ru) - Название (при отсутствии ИНН)

Требование: в сгенерированном списке не должно быть дублей по ИНН. Домены email должны быть уникальными или осознанно повторяться (филиалы).

4. Identity Hash (подготовка к Org Master Data)

Company.identity_hash = hash(normalize(ИНН) + normalize(domain))

Генерируется системой при создании. В seed-данных можно не указывать — backend заполнит автоматически.

5. Разнообразие

  • Отрасли: IT, Финансы, Ритейл, Производство, Строительство, Логистика, Медицина, Образование, HoReCa, Недвижимость, Услуги.
  • Регионы: Москва, СПб, регионы РФ (Екатеринбург, Казань, Новосибирск, Нижний Новгород и т.д.).
  • Размеры: от ИП (1 чел.) до крупных (5000+).
  • Названия: реалистичные, без «Test Company 1», «Компания А». Допустимы вымышленные, но правдоподобные названия.

6. Консистентность с Drawer и карточкой

Drawer (минимум при создании): название, ИНН, телефон, email, адрес, контактное лицо (6–8 полей).

Карточка (полный набор): все поля из таблицы выше + банковские реквизиты (БИК, р/с, к/с) — опционально для seed.


Формат вывода

Вариант A: JSON (для API / seed)

[
  {
    "name": "ООО «Альфа»",
    "inn": "7707049388",
    "kpp": "770701001",
    "ogrn": "1027700132195",
    "legalAddress": "123456, г. Москва, ул. Ленина, д. 1",
    "actualAddress": "123456, г. Москва, ул. Ленина, д. 1, офис 101",
    "phone": "+7 495 123-45-67",
    "email": "info@alfa.ru",
    "website": "https://alfa.ru",
    "industry": "IT",
    "employeeCount": 150,
    "notes": "",
    "tags": ["ключевой клиент"]
  }
]

Вариант B: CSV (для импорта)

Колонки: name, inn, kpp, ogrn, legalAddress, actualAddress, phone, email, website, industry, employeeCount, notes, tags

Разделитель: запятая. Кавычки для полей с запятыми.

Вариант C: TypeScript/JavaScript (seed-файл)

export const companies = [
  {
    name: "ООО «Альфа»",
    inn: "7707049388",
    // ...
  },
] as const;

Референсы

  • Бизнес-процесс: fairflow-business-process-v5.2.md — разделы 9 (Контакты и компании), 7.4 (Проверка дублей), 9.2 (Identity Hash).
  • Функциональная спецификация: docs/functional/09-companies.md — Drawer, карточка, фильтры.
  • Требования: docs/requirements/07-contacts-companies.md — many-to-many, merge, drift detection.
  • GraphQL: docs/backend/graphql-specification.md — тип Company, CreateCompanyInput, UpdateCompanyInput.
  • Импорт: docs/requirements/16-bulk-import.md — маппинг колонок, проверка дублей.

Чек-лист для проверки сгенерированного списка

  • [ ] Все компании имеют уникальный ИНН
  • [ ] ИНН соответствует формату (10 или 12 цифр)
  • [ ] Названия в корректном юридическом формате (ООО, АО, ИП)
  • [ ] Email-адреса валидны, домены разнообразны
  • [ ] Телефоны в формате +7 или E.164
  • [ ] Адреса содержат индекс, город, улицу
  • [ ] Отрасли и размеры разнообразны
  • [ ] Нет тестовых/мусорных названий («Test», «Company 1»)
  • [ ] Список готов к импорту (CSV) или к использованию в seed (JSON/TS)

Пример промпта для AI

Сгенерируй 30 российских компаний для CRM Fairflow в формате JSON.
Требования:
- Уникальные ИНН (10 цифр для юрлиц), валидный формат
- Названия: ООО, АО, несколько ИП — реалистичные вымышленные
- Отрасли: IT, финансы, ритейл, производство, логистика
- Регионы: Москва, СПб, Екатеринбург, Казань, Новосибирск
- Поля: name, inn, kpp, ogrn, legalAddress, phone, email, website, industry, employeeCount
- Без дублей по ИНН и домену email