Files
Scriberr/internal/interfaces/queue.go
rishikanthc 86add0037d refactor: Replace direct database.DB calls with repository pattern in handlers, dropzone, and multitrack_processor
Phase 1: Define interfaces
- Created internal/interfaces/ package with AuthServiceInterface, TaskQueueInterface, JobProcessorInterface

Phase 2: Refactor handlers.go (21 DB calls removed)
- Replaced all database.DB calls with repository methods
- Added RefreshTokenRepository for token management
- Added new repository methods: Count, FindActiveTrackJobs, FindLatestCompletedExecution, FindByName

Phase 3: Refactor dropzone.go (3 DB calls removed)
- Added CountWithAutoTranscription to UserRepository
- Injected JobRepository and UserRepository into Service

Phase 4: Refactor multitrack_processor.go
- Changed constructor to accept *gorm.DB and JobRepository
- Updated Handler to inject MultiTrackProcessor

Updated all test files with new dependencies and mock implementations.
2025-12-16 18:21:36 -08:00

19 lines
585 B
Go

package interfaces
// TaskQueueInterface defines the contract for task queue operations.
// This interface is already partially defined in dropzone/dropzone.go,
// but we centralize it here for reuse across packages.
type TaskQueueInterface interface {
// EnqueueJob adds a job to the processing queue
EnqueueJob(jobID string) error
// KillJob terminates a running job
KillJob(jobID string) error
// IsJobRunning checks if a job is currently being processed
IsJobRunning(jobID string) bool
// GetQueueStats returns queue statistics
GetQueueStats() map[string]interface{}
}