shoc-backend/SeaHaven.Services/Interfaces/ISyncFieldMergePolicy.cs

19 lines
673 B
C#
Raw Permalink Normal View History

namespace SeaHaven.Services.Interfaces
{
public interface ISyncFieldMergePolicy
{
IReadOnlySet<string> ShocOwnedFields { get; }
Task<bool> CanSyncOverwriteAsync(int workOrderId, string fieldName);
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; }
}
}