package queue import ( "context" "time" "git.ilapage.cn/OPC/chorus/internal/core/model" ) type Claim struct { Generation model.Generation LeaseToken string } type Repository interface { CreateIdempotent(ctx context.Context, generation *model.Generation, inputs []model.GenerationInput) (created bool, err error) ClaimNext(ctx context.Context, owner string, leaseDuration time.Duration) (*Claim, error) AssignProvider(ctx context.Context, generationID uint64, leaseToken string, providerModelID uint64) (bool, error) Succeed(ctx context.Context, generationID uint64, leaseToken string, outputs []model.GenerationOutput, attempt model.Attempt) (bool, error) Fail(ctx context.Context, generationID uint64, leaseToken string, code, message string, attempt model.Attempt) (bool, error) Inputs(ctx context.Context, generationID uint64) ([]model.GenerationInput, error) }