# ERP/reference sync

## 1. Reference datasets

- контрагенты и перевозчики;
- транспорт и прицепы;
- справочник грузов;
- рейсы (`trip_reference`);
- внешние документы (`external_ref`).

## 2. Входящий reference sync

- QR, RFID и ERP import могут заполнить `trip_reference`, `cargo_reference`, `driver_card_id`, `trailer_plate`;
- reference sync допускается до первой фазы, между фазами и перед финальным close;
- отсутствие reference data не блокирует автоматическое взвешивание, но не позволяет считать handover пакет полным.

## 3. Исходящий export карточки

- export unit: одна `weigh_session` с двумя фазами и ссылками на identity, media и alarm evidence;
- обязательные поля: `session_id`, `vehicle_plate`, `lane_id`, `direction`, `tare_kg`, `gross_kg`, `net_kg`, `trip_reference`, `external_ref`, `close_reason`, `review_reason`;
- export state фиксируется как `erp_state=pending|synced`.

## 4. Ошибки и retry

- ошибки ERP sync попадают в `offline-queue` как session-owned entity;
- повторный `erp-sync` остается идемпотентным;
- при `manual_review` export допустим только с `review_reason` и ссылкой на evidence bundle.

## 5. Owner rule

- weighbridge владеет cycle state, interlock и evidence;
- ERP владеет внешними reference identifiers;
- конфликт по `trip_reference` разрешается в пользу последнего подтвержденного external source с audit trail.
