RouterService multi-canal (ERP_IN_APP SSE, PWA_PUSH stub, TELEGRAM, EMAIL) avec quiet hours, aggregation, escalation watchdog, ACK tokens HMAC. Frontend: Agenda, Decisions, Reminders pages. 52 Vitest, 0 erreurs TS. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
77 lines
3.9 KiB
JSON
77 lines
3.9 KiB
JSON
{
|
||
"clientContracts": [
|
||
{
|
||
"ref": "КД-2026-001", "clientAbbrev": "АШАН", "contractNumber": "КД-2026-001",
|
||
"contractDate": "2026-01-10", "startDate": "2026-01-10", "status": "ACTIVE",
|
||
"terms": [
|
||
{ "trigger": "ORDER_DATE", "percent": 30, "label": "Предоплата 30%", "offsetDays": 0, "sortOrder": 0 },
|
||
{ "trigger": "SHIPMENT_DATE", "percent": 70, "label": "После отгрузки 70%", "offsetDays": 14, "sortOrder": 1 }
|
||
]
|
||
},
|
||
{
|
||
"ref": "КД-2026-002", "clientAbbrev": "ЛЕРУА", "contractNumber": "КД-2026-002",
|
||
"contractDate": "2026-02-01", "startDate": "2026-02-01", "status": "ACTIVE",
|
||
"terms": [
|
||
{ "trigger": "ORDER_DATE", "percent": 50, "label": "Предоплата 50%", "offsetDays": 0, "sortOrder": 0 },
|
||
{ "trigger": "SHIPMENT_DATE", "percent": 50, "label": "После отгрузки 50%", "offsetDays": 30, "sortOrder": 1 }
|
||
]
|
||
},
|
||
{
|
||
"ref": "КД-2026-003", "clientAbbrev": "WB", "contractNumber": "КД-2026-003",
|
||
"contractDate": "2026-03-01", "startDate": "2026-03-01", "status": "ACTIVE",
|
||
"terms": [
|
||
{ "trigger": "ORDER_DATE", "percent": 100, "label": "100% предоплата", "offsetDays": 0, "sortOrder": 0 }
|
||
]
|
||
},
|
||
{
|
||
"ref": "КД-2026-004", "clientAbbrev": "ОЗОН", "contractNumber": "КД-2026-004",
|
||
"contractDate": "2026-03-15", "startDate": "2026-03-15", "status": "ACTIVE",
|
||
"terms": [
|
||
{ "trigger": "ORDER_DATE", "percent": 20, "label": "Аванс 20%", "offsetDays": 0, "sortOrder": 0 },
|
||
{ "trigger": "PRODUCTION_READY", "percent": 30, "label": "При готовности 30%", "offsetDays": 0, "sortOrder": 1 },
|
||
{ "trigger": "SHIPMENT_DATE", "percent": 50, "label": "После отгрузки 50%", "offsetDays": 21, "sortOrder": 2 }
|
||
]
|
||
},
|
||
{
|
||
"ref": "КД-2026-005", "clientAbbrev": "МАГНИТ", "contractNumber": "КД-2026-005",
|
||
"contractDate": "2026-04-01", "startDate": "2026-04-01", "status": "DRAFT",
|
||
"terms": [
|
||
{ "trigger": "ORDER_DATE", "percent": 40, "label": "Предоплата 40%", "offsetDays": 0, "sortOrder": 0 },
|
||
{ "trigger": "SHIPMENT_DATE", "percent": 60, "label": "После отгрузки 60%", "offsetDays": 14, "sortOrder": 1 }
|
||
]
|
||
}
|
||
],
|
||
"supplierContracts": [
|
||
{
|
||
"supplierInn": "3528000597", "contractNumber": "ПД-2026-001",
|
||
"contractDate": "2026-01-15", "startDate": "2026-01-15", "status": "SIGNED", "signedAt": "2026-01-15",
|
||
"terms": [
|
||
{ "trigger": "PREPAYMENT", "percent": 50, "label": "Предоплата 50%", "offsetDays": 0, "sortOrder": 0 },
|
||
{ "trigger": "ON_DELIVERY", "percent": 50, "label": "По доставке 50%", "offsetDays": 30, "sortOrder": 1 }
|
||
]
|
||
},
|
||
{
|
||
"supplierInn": "6950200001", "contractNumber": "ПД-2026-002",
|
||
"contractDate": "2026-02-01", "startDate": "2026-02-01", "status": "SIGNED", "signedAt": "2026-02-01",
|
||
"terms": [
|
||
{ "trigger": "ON_DELIVERY", "percent": 100, "label": "100% по факту", "offsetDays": 14, "sortOrder": 0 }
|
||
]
|
||
},
|
||
{
|
||
"supplierInn": "4823006703", "contractNumber": "ПД-2026-003",
|
||
"contractDate": "2026-02-15", "startDate": "2026-02-15", "status": "SIGNED", "signedAt": "2026-02-20",
|
||
"terms": [
|
||
{ "trigger": "PREPAYMENT", "percent": 30, "label": "Аванс 30%", "offsetDays": 0, "sortOrder": 0 },
|
||
{ "trigger": "POST_DELIVERY", "percent": 70, "label": "Постоплата 70%", "offsetDays": 45, "sortOrder": 1 }
|
||
]
|
||
},
|
||
{
|
||
"supplierInn": "6950100002", "contractNumber": "ПД-2026-004",
|
||
"contractDate": "2026-04-01", "startDate": "2026-04-01", "status": "DRAFT",
|
||
"terms": [
|
||
{ "trigger": "PREPAYMENT", "percent": 100, "label": "100% предоплата", "offsetDays": 0, "sortOrder": 0 }
|
||
]
|
||
}
|
||
]
|
||
}
|