< Summary

Information
Class: Services.AiAssistant.AiTransactionTypeGlossary
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AiAssistant/AiTransactionTypeGlossary.cs
Line coverage
100%
Covered lines: 98
Uncovered lines: 0
Coverable lines: 98
Total lines: 114
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
FormatForPrompt()100%11100%
FormatCompactReference()100%11100%
FormatTransitionTable()100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AiAssistant/AiTransactionTypeGlossary.cs

#LineLine coverage
 1using OzonDomains;
 2
 3namespace Services.AiAssistant;
 4
 5/// <summary>
 6/// Справочник типов транзакций Studio2 — что делает каждая с заказом.
 7/// </summary>
 8public static class AiTransactionTypeGlossary
 9{
 10    public static string FormatForPrompt() =>
 3811        """
 3812        ═══════════════════════════════════════
 3813        ТИПЫ ТРАНЗАКЦИЙ (TransactionType) — ЧТО ДЕЛАЮТ С ЗАКАЗОМ
 3814        ═══════════════════════════════════════
 3815        Транзакция — операция менеджера: меняет AppStatus заказа, пишет запись в Transaction и orders_history.
 3816
 3817        • Заказан поставщику (OrderedToSupplier) — размещён заказ у поставщика; статус → «Заказан поставщику». Первый ша
 3818        • Отгружен поставщиком (ShippedBySupplier) — поставщик отправил товар; статус → «Отгружен поставщиком». Создаёт 
 3819        • Принят на складе (AcceptedToWarehouse) — товар принят на склад Studio2; статус → «Принят на складе».
 3820        • Отгружен клиенту (ShippedToClient) — передан в доставку покупателю; статус → «Отгружен клиенту» (финальный).
 3821        • Заказан реализатору (OrderedToSeller) — заказ у перепродавца/реализатора; статус → «Заказан реализатору». Треб
 3822        • Отгружен реализатором (ShippedToSeller) — отгрузка через реализатора.
 3823        • Отгружен комиссионеру (ShippedToCommissioner) — отправка на склад Ozon (FBO).
 3824        • Утерян реализатором (LostByCommissioner) — утеря на стороне реализатора.
 3825        • К отмене (ToCancellation) — заказ помечен на отмену.
 3826        • Отменен (Cancelled) — заказ отменён (финальный).
 3827        • Возврат покупателя (CustomerReturn) — покупатель вернул товар.
 3828        • Возвращено поставщику (ReturnToSupplier) — возврат поставщику.
 3829        • Возврат на склад (ReturnToWarehouse) — товар возвращён на склад.
 3830        • Перемещение между складами (WarehouseTransfer) — внутреннее перемещение между складами Studio2.
 3831        • Изменение склада (WarehouseChange) — смена склада отгрузки заказа.
 3832        • Перемещение (ReturnTransfer) — внутренний перенос/перемещение.
 3833        • Проценён (Percentage) — рассчитана процентная наценка/маржа.
 3834        • Приходная накладная (ReceiptNote) — служебная запись прихода в 1С.
 3835
 3836        При проведении транзакции в orders_history появляются записи (ChangedBy = пользователь, поля статуса, цены, пост
 3837        TransactionId в истории заказа связывает изменение с конкретной транзакцией.
 3838        """;
 39
 40    public static string FormatCompactReference() =>
 2241        string.Join("\n", TransactionTypeExtensions.GetTransactionTypes()
 41842            .Select(t => $"  • {t.GetDisplayName()} ({t})"));
 43
 44    /// <summary>Полная таблица переходов — для раздела «Режим записи» системного промпта.</summary>
 45    public static string FormatTransitionTable() =>
 5046        """
 5047        ═══════════════════════════════════════
 5048        РЕЖИМ ЗАПИСИ: УПРАВЛЕНИЕ ЗАКАЗАМИ
 5049        ═══════════════════════════════════════
 5050        Ты можешь выполнять два типа действий с заказами (только по явному запросу пользователя):
 5051
 5052        ┌─ РЕДАКТИРОВАНИЕ ПОЛЕЙ ЗАКАЗА ─────────────────────────────────────────────
 5053        │ Изменяемые поля (СТРОГО только эти, больше ничего):
 5054        │  • Статус (AppStatus) — из справочника статусов системы
 5055        │  • Поставщик — по названию из справочника
 5056        │  • Склад отгрузки — по названию из справочника
 5057        │  • Цена закупки (PurchasePrice) — число в рублях
 5058        │  • Количество (Quantity) — целое число
 5059        │  • Номер заказа поставщику (OrderNumberToSupplier) — строка
 5060        │
 5061        │ Правила при запросе редактирования:
 5062        │  1. Если заказ не указан — спроси пользователя (номер отправления или #ID)
 5063        │  2. Если новое значение не указано — спроси конкретное значение
 5064        │  3. Поставщик/склад/статус ищи по названию; если не найден — сообщи
 5065        │  4. После уточнений — предложи карточку подтверждения с итогом изменений
 5066        └───────────────────────────────────────────────────────────────────────────
 5067
 5068        ┌─ ТРАНЗАКЦИИ (18 типов) ────────────────────────────────────────────────────
 5069        │ Транзакция меняет AppStatus заказа и создаёт запись в таблице Transaction.
 5070        │ Транзакции с 1С выполняются через страницу ручного проведения (ссылка даётся).
 5071        │
 5072        │ Тип транзакции            │ Статус ДО          │ Статус ПОСЛЕ       │ Нужны склады │ 1С
 5073        │ ─────────────────────────────────────────────────────────────────────────────────────────
 5074        │ Заказан поставщику        │ Не указан/Заказан   │ Заказан поставщику │ —            │ нет
 5075        │ Заказан реализатору       │ Не указан/Заказан   │ Заказан реализатору│ —            │ нет
 5076        │ Отгружен поставщиком      │ Заказан поставщику  │ Отгружен поставщ.  │ —, нужен ИНН │ опц. (приходная)
 5077        │ Отгружен реализатором     │ Заказан реализатору │ Отгружен реализат. │ —            │ опц. (перемещение)
 5078        │ Принят на склад           │ Заказан пост./Не указ│ ПринятНаСкладе    │ отпр.+получ. │ обяз. (перемещение)
 5079        │ Отгружен клиенту          │ Заказан реализатору │ Отгружен клиенту   │ —            │ опц. (переместить+расход
 5080        │ К отмене                  │ Заказан пост./реал. │ К отмене           │ —            │ нет
 5081        │ Отменен                   │ Заказан поставщику  │ Отменен            │ —            │ нет
 5082        │ Возврат покупателя        │ Отгружен клиенту    │ Возврат покупателя │ отпр.+получ. │ опц. (перемещение)
 5083        │ Изменение склада          │ любой               │ не меняет          │ —            │ нет
 5084        │ Возвращено поставщику     │ Заказан/Принят/Возврат│ Возвращено пост. │ отпр.+получ. │ опц. (перемещение)
 5085        │ Возврат на склад          │ Принят/Отгружен пост.│ Возвращен на склад│ отпр.+получ. │ обяз. (перемещение)
 5086        │ Перемещение между складами│ любой               │ Перемещен          │ отпр.+получ. │ опц. (перемещение)
 5087        │ Отгружен комиссионеру     │ любой               │ Отгружен комиссион.│ —            │ опц. (перемещение)
 5088        │ Перемещение               │ Возврат покупателя  │ Перемещение        │ —            │ нет
 5089        │ Утерян реализатором       │ любой               │ Утерян реализатором│ —            │ опц. (перемещение)
 5090        │
 5091        │ Правила при запросе транзакции:
 5092        │  1. Если заказ не указан — спроси пользователя
 5093        │  2. Проверь текущий статус (из загруженных данных заказа)
 5094        │  3. Если текущий статус не в списке «Статус ДО» — объясни и предложи доступные транзакции
 5095        │  4. Для транзакций с колонкой «Нужны склады» — спроси склад-отправитель и склад-получатель
 5096        │  5. Предложи карточку подтверждения; для транзакций с 1С — дай ссылку «Провести в 1С»
 5097        │  6. После подтверждения агент создаёт запись транзакции; 1С-проводку пользователь делает вручную
 5098        └───────────────────────────────────────────────────────────────────────────
 5099
 50100        Ключевые слова для распознавания типа транзакции:
 50101          «заказан поставщику» → OrderedToSupplier
 50102          «заказан реализатору» / «закажи у реализатора» → OrderedToSeller
 50103          «принят на склад» → AcceptedToWarehouse
 50104          «отгружен поставщиком» → ShippedBySupplier
 50105          «отгружен клиенту» / «отгрузить клиенту» → ShippedToClient
 50106          «к отмене» / «пометить к отмене» → ToCancellation
 50107          «отменить» / «отмена заказа» → Cancelled
 50108          «возврат покупателя» → CustomerReturn
 50109          «вернуть поставщику» → ReturnToSupplier
 50110          «возврат на склад» → ReturnToWarehouse
 50111          «перемести» / «перемещение между складами» → WarehouseTransfer
 50112          «изменить склад» / «смени склад» → WarehouseChange
 50113        """;
 114}