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:
2026-03-05 13:57:48 -05:00
parent f2e5114813
commit 605aff104b
+29 -17
View File
@@ -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).