feat(kol): repo support for cross-tenant revision lookup

This commit is contained in:
2026-04-17 14:51:54 +08:00
parent d0747825e6
commit 26bc8a3749
10 changed files with 156 additions and 20 deletions
@@ -27,9 +27,20 @@ type GenerationTaskInput struct {
ArticleID *int64
QuotaReservationID *int64
TaskType string
RequestHash *string
InputParamsJSON []byte
}
type TaskRecordInput struct {
TenantID int64
OperatorID int64
TaskType string
ResourceType string
ResourceID int64
Status string
ErrorMessage *string
}
type GenerationTaskStatusInput struct {
ID int64
TenantID int64
@@ -42,6 +53,8 @@ type GenerationTaskStatusInput struct {
type AuditRepository interface {
CreateAuditLog(ctx context.Context, input AuditLogInput) error
CreateGenerationTask(ctx context.Context, input GenerationTaskInput) (int64, error)
CreateTaskRecord(ctx context.Context, input TaskRecordInput) (int64, error)
UpdateTaskRecordStatus(ctx context.Context, input TaskRecordInput) error
UpdateGenerationTaskStatus(ctx context.Context, input GenerationTaskStatusInput) error
}
@@ -80,10 +93,37 @@ func (r *auditRepository) CreateGenerationTask(ctx context.Context, input Genera
ArticleID: pgInt8(input.ArticleID),
QuotaReservationID: pgInt8(input.QuotaReservationID),
TaskType: input.TaskType,
RequestHash: pgText(input.RequestHash),
InputParamsJson: input.InputParamsJSON,
})
}
func (r *auditRepository) CreateTaskRecord(ctx context.Context, input TaskRecordInput) (int64, error) {
var operatorID *int64
if input.OperatorID > 0 {
operatorID = &input.OperatorID
}
return r.q.CreateTaskRecord(ctx, generated.CreateTaskRecordParams{
TenantID: input.TenantID,
OperatorID: pgInt8(operatorID),
TaskType: input.TaskType,
ResourceType: input.ResourceType,
ResourceID: input.ResourceID,
Status: input.Status,
})
}
func (r *auditRepository) UpdateTaskRecordStatus(ctx context.Context, input TaskRecordInput) error {
return r.q.UpdateTaskRecordStatus(ctx, generated.UpdateTaskRecordStatusParams{
Status: input.Status,
ErrorMessage: pgText(input.ErrorMessage),
TenantID: input.TenantID,
TaskType: input.TaskType,
ResourceType: input.ResourceType,
ResourceID: input.ResourceID,
})
}
func (r *auditRepository) UpdateGenerationTaskStatus(ctx context.Context, input GenerationTaskStatusInput) error {
return r.q.UpdateGenerationTaskStatus(ctx, generated.UpdateGenerationTaskStatusParams{
Status: input.Status,