**Title:** `[Cron] Implement scheduled cleanup job for expired tokens and stale data` **Tags:** `backend`, `cron`, `feature` **Description:** Periodic DB maintenance jobs to keep the database clean and performant. **Acceptance Criteria:** - [ ] **Expired sessions** — hourly: delete `sessions` rows where `expiresAt < now()`. - [ ] **Expired password-reset tokens** — hourly: delete stale tokens. - [ ] **Old notifications** — daily: soft-delete notifications older than 90 days. - [ ] **Failed distribution records** — weekly: archive `distributions` with `status=failed` older than 30 days. - [ ] All jobs emit Prometheus counter increments via `metrics.service.ts`. - [ ] Unit test: mock DB; verify correct delete conditions used. **File:** `src/services/cron.service.ts` ---
Title:
[Cron] Implement scheduled cleanup job for expired tokens and stale dataTags:
backend,cron,featureDescription:
Periodic DB maintenance jobs to keep the database clean and performant.
Acceptance Criteria:
sessionsrows whereexpiresAt < now().distributionswithstatus=failedolder than 30 days.metrics.service.ts.File:
src/services/cron.service.ts