# TODOs Audit Report

**Date**: 2025-01-27  
**Total TODOs/FIXMEs/HACKs/XXXs Found**: 31

## Summary

This document lists all TODO, FIXME, HACK, and XXX comments found in the codebase, categorized by priority and status.

## Priority Categories

- **P0**: Critical - Blocks functionality or security
- **P1**: High - Important for production readiness
- **P2**: Medium - Quality of life improvements
- **P3**: Low - Nice to have, technical debt

## Status

- **Open**: Not yet addressed
- **In Progress**: Currently being worked on
- **Resolved**: Completed
- **Deferred**: Postponed to future work

---

## TODOs by File

### `internal/core/track/service.go`
- **TODO(P2-GO-018)**: Enqueue job pour traitement asynchrone (metadata, waveform, etc.) selon ORIGIN_ASYNC_PROCESSING
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Performance optimization

### `internal/core/track/handler.go`
- **TODO(P2-GO-004)**: trackUploadService attend int64 - Migration UUID partielle à compléter
  - **Priority**: P1
  - **Status**: Open
  - **Category**: Migration incomplete
- **TODO(P2-GO-004)**: Migration UUID partielle - trackUploadService nécessite migration vers UUID
  - **Priority**: P1
  - **Status**: Open
  - **Category**: Migration incomplete

### `internal/database/database.go`
- **TODO**: Implémenter OAuth user lookup
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Feature incomplete
- **TODO**: Implémenter avec vraie DB (3 occurrences)
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Implementation placeholder

### `internal/handlers/oauth_handlers.go`
- **TODO**: Get from config (frontendURL hardcoded)
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Configuration

### `internal/handlers/session.go`
- **TODO**: Déterminer si c'est la session actuelle
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Feature incomplete

### `internal/logging/logger.go`
- **TODO**: Implémenter avec AtomicLevel lors de la création du logger
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Enhancement

### `internal/repositories/playlist_collaborator_repository.go`
- **FIXME**: Assurer que le modèle PlaylistCollaborator utilise UUID
  - **Priority**: P1
  - **Status**: Open
  - **Category**: Migration incomplete

### `internal/services/playlist_version_service.go`
- **FIXME**: models.PlaylistVersion ID types need check. Assuming repo handles UUID if struct updated.
  - **Priority**: P1
  - **Status**: Open
  - **Category**: Migration incomplete

### `internal/services/track_history_service.go`
- **FIXME**: models.TrackHistory needs UUID too if not updated
  - **Priority**: P1
  - **Status**: Open
  - **Category**: Migration incomplete

### `internal/services/job_service.go`
- **TODO**: Intégrer asynq ou autre système de queue (3 occurrences)
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Architecture

### `internal/services/playlist_service.go`
- **FIXME**: PlaylistVersionService likely needs update for UUID too, but assuming it takes what we give or we handle it later
  - **Priority**: P1
  - **Status**: Open
  - **Category**: Migration incomplete

### `internal/api/api_manager.go`
- **TODO**: Réactiver api_manager.go après stabilisation du noyau et alignement des services (graphql, grpc, websocket, features)
  - **Priority**: P3
  - **Status**: Deferred
  - **Category**: Future feature
- **TODO**: Implement feature start
  - **Priority**: P3
  - **Status**: Deferred
  - **Category**: Future feature
- **TODO**: Implement feature stop
  - **Priority**: P3
  - **Status**: Deferred
  - **Category**: Future feature
- **TODO**: Implement comprehensive metrics collection
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Enhancement

### `internal/api/user/service.go`
- **TODO**: Parse JSON strings to structs (simplified for now)
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Implementation placeholder
- **TODO**: Serialize structs to JSON (simplified for now)
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Implementation placeholder

### `internal/api/handlers/chat_handlers.go`
- **TODO**: Réactiver chat_handlers après stabilisation du noyau et alignement des services (ChatService, MessageType, RoomType)
  - **Priority**: P3
  - **Status**: Deferred
  - **Category**: Future feature

### `internal/api/handlers/two_factor_handlers.go`
- **TODO**: Réactiver two_factor_handlers après stabilisation du noyau et alignement des services (AuthService.GetUserByID)
  - **Priority**: P3
  - **Status**: Deferred
  - **Category**: Future feature

### `internal/api/admin/service.go`
- **TODO**: Implement based on doc_admin_handler.md (3 occurrences)
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Feature incomplete

### `internal/config/config.go`
- **TODO**: Améliorer la configuration CORS dans api/router.go pour utiliser c.CORSOrigins depuis la config
  - **Priority**: P2
  - **Status**: Open
  - **Category**: Code quality

### `cmd/modern-server/main.go`
- **TODO**: Réactiver internal/api/handlers après stabilisation du noyau
  - **Priority**: P3
  - **Status**: Deferred (file deprecated)
  - **Category**: Legacy code
- **TODO**: Réactiver services après stabilisation du noyau
  - **Priority**: P3
  - **Status**: Deferred (file deprecated)
  - **Category**: Legacy code
- **TODO**: Utiliser cfg.LogLevel pour déterminer le mode
  - **Priority**: P2
  - **Status**: Deferred (file deprecated)
  - **Category**: Legacy code
- **TODO**: Ajouter ReadTimeout et WriteTimeout si nécessaire
  - **Priority**: P2
  - **Status**: Deferred (file deprecated)
  - **Category**: Legacy code
- **TODO**: Utiliser config pour timeout
  - **Priority**: P2
  - **Status**: Deferred (file deprecated)
  - **Category**: Legacy code

---

## Summary by Priority

- **P0**: 0 items
- **P1**: 7 items (UUID migration incomplete)
- **P2**: 18 items (various improvements)
- **P3**: 6 items (deferred/future features)

## Recommendations

1. **P1 Items (UUID Migration)**: Complete UUID migration for remaining services
2. **P2 Items**: Prioritize based on impact and effort
3. **P3 Items**: Defer to future sprints or remove if no longer relevant

## Action Items

1. Create GitHub issues for P1 items
2. Review P2 items and prioritize
3. Remove or update P3 items in deprecated code
4. Update this document as TODOs are resolved

---

**Last Updated**: 2025-01-27  
**Maintained By**: Veza Backend Team
