package worker import ( "context" "time" workercontracts "github.com/example/remote-access-platform/backend/pkg/contracts/worker" ) type Store interface { RegisterWorker(ctx context.Context, registration workercontracts.WorkerRegistration, ttl time.Duration) error TouchWorkerHeartbeat(ctx context.Context, heartbeat workercontracts.WorkerHeartbeat, ttl time.Duration) error ListWorkers(ctx context.Context) ([]workercontracts.WorkerRegistration, error) GetWorker(ctx context.Context, workerID string) (*workercontracts.WorkerRegistration, error) AcquireLease(ctx context.Context, lease workercontracts.WorkerLease, ttl time.Duration) error GetLease(ctx context.Context, leaseID string) (*workercontracts.WorkerLease, error) GetLeaseBySession(ctx context.Context, sessionID string) (*workercontracts.WorkerLease, error) RenewLease(ctx context.Context, lease workercontracts.WorkerLease, ttl time.Duration) error ReleaseLease(ctx context.Context, leaseID string) error ListLeases(ctx context.Context) ([]workercontracts.WorkerLease, error) AppendAssignment(ctx context.Context, workerID string, payload map[string]any) error AppendEnvelope(ctx context.Context, envelope workercontracts.RoutedEnvelope) error AppendEvent(ctx context.Context, payload map[string]any) error }