packages feed

clickhouse-migrate-0.1.0.0: src/ClickHouseMigrate/Internal/RepairTypes.hs

module ClickHouseMigrate.Internal.RepairTypes where

import ClickHouseMigrate.Ledger (AppendReceipt, AttemptId, AuditContext, LedgerPosition, QuiescenceEvidence)
import ClickHouseMigrate.Report (StepAttempt)

data RecoveryEvidence = RecoveryEvidence !AuditContext !QuiescenceEvidence ![AppendReceipt]

data RepairRequest
  = ResumeRequest !LedgerPosition !AttemptId !RecoveryEvidence
  | RetryStepRequest !LedgerPosition !AttemptId !StepAttempt !RecoveryEvidence
  | AcceptStepRequest !LedgerPosition !AttemptId !StepAttempt !RecoveryEvidence
  | FinalizeRequest !LedgerPosition !AttemptId !RecoveryEvidence

data RepairRequestError = MissingRecoveryEvidence | InvalidStepAttempt | InvalidRecoveryTarget | TooManyPendingReceipts | ForeignLedgerReceipt
  deriving stock (Eq, Show)