2026-06-30 13:20:41 -03:00
|
|
|
namespace SeaHaven.Services.Interfaces
|
|
|
|
|
{
|
|
|
|
|
public interface ISyncFieldMergePolicy
|
|
|
|
|
{
|
|
|
|
|
IReadOnlySet<string> ShocOwnedFields { get; }
|
|
|
|
|
|
2026-07-02 09:30:05 -03:00
|
|
|
Task<bool> CanSyncOverwriteAsync(int workOrderId, string fieldName);
|
2026-06-30 13:20:41 -03:00
|
|
|
|
|
|
|
|
Task<bool> TryApplyAsync(WorkOrderSyncContext context, string fieldName, object? incomingValue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class WorkOrderSyncContext
|
|
|
|
|
{
|
|
|
|
|
public required Data.SeaHavenIndustries.WorkOrder WorkOrder { get; init; }
|
|
|
|
|
public required SeaHaven.Services.Interfaces.IWorkOrderFieldLockService FieldLocks { get; init; }
|
|
|
|
|
public required SeaHaven.Services.Interfaces.IWorkOrderAuditService Audit { get; init; }
|
|
|
|
|
}
|
|
|
|
|
}
|