docs: Fix Phase 1 job type duplication with Phase 0.5
Fixed issue where Phase 1 tried to add job types that were already added in Phase 0.5. Changes: 1. Step 1.1 - Updated title from 'Add All Job Type Constants' to 'Add NEW Job Type Constants' - Now shows current state after Phase 0.5 (JobTypeScan, JobTypeSetFolders, JobTypeDirectoryScan) - Only adds NEW Phase 1 job types: Import, Convert, Thumbnails, Reindex, Backup, Analytics, Sync - Clarifies that JobTypeScan, JobTypeSetFolders, JobTypeDirectoryScan were added in Phase 0.5 2. Step 1.2 - Updated title from 'Add Job Handlers to Switch Statement' to 'Add NEW Job Handlers to Switch Statement' - Now shows current state after Phase 0.5 (handlers for Scan, SetFolders, DirectoryScan) - Only adds NEW Phase 1 handlers for the new job types - Clarifies that existing handlers were added in Phase 0.5 Impact: Developers now have clear guidance on which job types/handlers to add in each phase, avoiding confusion and potential merge conflicts.
This commit is contained in:
@@ -1289,60 +1289,72 @@ Files modified:
|
||||
|
||||
## Phase 1: Job Queue Expansion (6-8 hours)
|
||||
|
||||
### Step 1.1: Add All Job Type Constants
|
||||
### Step 1.1: Add NEW Job Type Constants
|
||||
**File**: `internal/services/worker.go`
|
||||
|
||||
**Location**: JobType constants (lines 24-28)
|
||||
|
||||
**Current code**:
|
||||
**Current code** (after Phase 0.5):
|
||||
```go
|
||||
const (
|
||||
JobTypeScan JobType = "scan"
|
||||
JobTypeScan JobType = "scan"
|
||||
JobTypeSetFolders JobType = "set_folders"
|
||||
JobTypeDirectoryScan JobType = "directory_scan"
|
||||
)
|
||||
```
|
||||
|
||||
**Action**: Add all new job types:
|
||||
**Action**: Add NEW job types for Phase 1:
|
||||
|
||||
```go
|
||||
const (
|
||||
JobTypeScan JobType = "scan"
|
||||
JobTypeImport JobType = "import" // NEW
|
||||
JobTypeConvert JobType = "convert" // NEW
|
||||
JobTypeThumbnails JobType = "thumbnails" // NEW
|
||||
JobTypeReindex JobType = "reindex" // NEW
|
||||
JobTypeBackup JobType = "backup" // NEW
|
||||
JobTypeAnalytics JobType = "analytics" // NEW
|
||||
JobTypeSync JobType = "sync" // NEW
|
||||
JobTypeScan JobType = "scan"
|
||||
JobTypeSetFolders JobType = "set_folders"
|
||||
JobTypeDirectoryScan JobType = "directory_scan"
|
||||
JobTypeImport JobType = "import" // NEW - Phase 1
|
||||
JobTypeConvert JobType = "convert" // NEW - Phase 1
|
||||
JobTypeThumbnails JobType = "thumbnails" // NEW - Phase 1
|
||||
JobTypeReindex JobType = "reindex" // NEW - Phase 1
|
||||
JobTypeBackup JobType = "backup" // NEW - Phase 1
|
||||
JobTypeAnalytics JobType = "analytics" // NEW - Phase 1
|
||||
JobTypeSync JobType = "sync" // NEW - Phase 1
|
||||
)
|
||||
```
|
||||
|
||||
**Why**: Defines all job types the system will support. Job queue is massively underutilized (only 1 type).
|
||||
**Why**: Phase 0.5 added JobTypeScan, JobTypeSetFolders, and JobTypeDirectoryScan. Phase 1 expands the job queue to support more async operations: import, conversion, thumbnails, reindexing, backup, analytics, and sync.
|
||||
|
||||
**Verification**: Run `go build ./internal/services/` to ensure compiles.
|
||||
|
||||
---
|
||||
|
||||
### Step 1.2: Add Job Handlers to Switch Statement
|
||||
### Step 1.2: Add NEW Job Handlers to Switch Statement
|
||||
**File**: `internal/services/worker.go`
|
||||
|
||||
**Location**: `processJob()` function (around line 127-132)
|
||||
|
||||
**Current code**:
|
||||
**Current code** (after Phase 0.5):
|
||||
```go
|
||||
switch job.Type {
|
||||
case JobTypeScan:
|
||||
result, err = w.processScanJob(job)
|
||||
case JobTypeSetFolders:
|
||||
result, err = w.processSetFoldersJob(job)
|
||||
case JobTypeDirectoryScan:
|
||||
result, err = w.processDirectoryScanJob(job)
|
||||
default:
|
||||
err = fmt.Errorf("unknown job type: %s", job.Type)
|
||||
}
|
||||
```
|
||||
|
||||
**Action**: Add all new handlers:
|
||||
**Action**: Add NEW handlers for Phase 1 job types:
|
||||
|
||||
```go
|
||||
switch job.Type {
|
||||
case JobTypeScan:
|
||||
result, err = w.processScanJob(job)
|
||||
case JobTypeSetFolders:
|
||||
result, err = w.processSetFoldersJob(job)
|
||||
case JobTypeDirectoryScan:
|
||||
result, err = w.processDirectoryScanJob(job)
|
||||
case JobTypeImport:
|
||||
result, err = w.processImportJob(job)
|
||||
case JobTypeConvert:
|
||||
@@ -1362,7 +1374,7 @@ default:
|
||||
}
|
||||
```
|
||||
|
||||
**Why**: Routes each job type to its handler function.
|
||||
**Why**: Phase 0.5 added handlers for JobTypeScan, JobTypeSetFolders, and JobTypeDirectoryScan. Phase 1 adds handlers for the new job types: import, conversion, thumbnails, reindexing, backup, analytics, and sync.
|
||||
|
||||
**Verification**: Run `go build ./internal/services/` to ensure compiles (will fail until handlers are implemented).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user