Files
apocapoc-api/internal/domain/entities/habit_entry.go
T
david 9f673bfca3 Refactor habit entries: remove soft delete and add smart pagination
Remove soft delete from HabitEntry:
- Eliminate DeletedAt field from entity and database
- Change UnmarkHabit from soft delete to hard delete
- Simplify all queries removing deleted_at checks
- Update migration to remove deleted_at column

Add date filtering and smart pagination to GetHabitEntries:
- Support optional from/to date parameters
- Implement intelligent pagination rules:
  * No date range: pagination required
  * Date range > 1 year: pagination required
  * Date range ≤ 1 year: pagination optional
- Pagination defaults (page=1, limit=50) only when required
- Return metadata with total count, page, and limit

Technical improvements:
- Cleaner codebase without soft delete complexity
- Better performance (no filtering in queries)
- More intuitive API with flexible pagination
- Comprehensive test coverage for validation rules
2025-11-26 16:33:40 +01:00

21 lines
406 B
Go

package entities
import "time"
type HabitEntry struct {
ID string
HabitID string
ScheduledDate time.Time
CompletedAt time.Time
Value *float64
}
func NewHabitEntry(habitID string, scheduledDate time.Time, value *float64) *HabitEntry {
return &HabitEntry{
HabitID: habitID,
ScheduledDate: scheduledDate,
CompletedAt: time.Now(),
Value: value,
}
}