Sangeetha-Grantha

Metadata Value
Track ID TRACK-074
Title Refactor DAL Repositories
Status Completed
Created 2026-02-28
Author Sangeetha Grantha Team
Depends On TRACK-073

TRACK-074: Refactor DAL Repositories

Objective

Split KrithiRepository.kt (899 lines) and BulkImportRepository.kt (718 lines) into focused, sub-300-line repositories.

Motivation

Scope

Phase 1: Tests (BEFORE any refactoring)

Phase 2: Split KrithiRepository.kt

Extract To Methods ~Lines
KrithiLyricVariantRepository.kt getLyricVariants, findLyricVariantById, createLyricVariant, updateLyricVariant, saveLyricVariantSections ~280
KrithiSearchRepository.kt search, findDuplicateCandidates, findNearTitleCandidates, findCandidatesByMetadata, countAll, countByState ~280
KrithiRepository.kt (slimmed) findById, create, update, getTags, updateTags, getSections, saveSections ~280

Phase 3: Split BulkImportRepository.kt

Extract To Methods ~Lines
BulkImportTaskRepository.kt createTask, createTasks, findTaskById, listTasksByJob, listTasksByBatch, claimNextPendingTasks, markTaskStarted, updateTaskStatus, incrementTaskAttempt, requeueTasksForBatch, markStuckRunningTasks ~250
BulkImportEventRepository.kt createEvent, listEventsByRef, deleteBatch ~180
BulkImportRepository.kt (slimmed) createBatch, findBatchById, listBatches, updateBatchStatus, updateBatchStats, setBatchTotals, createJob, findJobById, listJobsByBatch, updateJobStatus, incrementJobRetry, incrementBatchCounters ~250

Phase 4: Update Wiring

Verification

  1. ./gradlew :modules:backend:api:test – 0 failures
  2. No file exceeds 300 lines
  3. All new repositories registered in SangitaDal