<?php

namespace Modules\Vrc\Services\Contracts;

/**
 * VRC ↔ ERP audit boundary. Repair-order transitions, estimate decisions,
 * claim changes and reminders are recorded through the ERP audit log (spec
 * §9 Observability) — VRC never logs to a parallel store.
 */
interface AuditServiceContract
{
    /**
     * Record an action on a model in the ERP audit log.
     *
     * @param  \Illuminate\Database\Eloquent\Model  $model
     * @param  string  $action      e.g. 'created', 'updated', 'transitioned'
     * @param  array   $properties  extra context (from/to status, totals, ...)
     */
    public function log($model, string $action, array $properties = [], ?int $businessId = null): void;
}
