namespace DodoSSH.Contracts;
///
/// Outcome of a single operation within a sync push.
///
///
/// A push returns HTTP 200 even when some operations fail, with one of these per operation.
/// Conflicting operations are skipped rather than aborting the batch, so one stale item cannot
/// block every other change a client has queued while offline.
///
public enum SyncOperationStatus
{
/// Not a legal value.
Unspecified = 0,
/// Applied. The response carries the new version and change sequence.
Applied = 1,
///
/// The expected version did not match. The response carries the server's current entity so
/// the client can merge and re-push; the server never merges, because it cannot read the
/// payload.
///
Conflict = 2,
/// The caller lacks permission for this entity.
Forbidden = 3,
/// Structurally invalid: unknown entity type, malformed envelope, missing field.
Invalid = 4,
///
/// This operation id was already applied. Retries are therefore exactly-once at operation
/// granularity rather than merely at batch granularity.
///
Duplicate = 5,
}