feat: added exercises handler/service/repo

This commit is contained in:
2026-09-04 12:29:44 +02:00
parent f0304cda1a
commit e1f274b744
9 changed files with 561 additions and 4 deletions
+41
View File
@@ -0,0 +1,41 @@
package domain
import (
"context"
"time"
)
type ExerciseRepository interface {
CreateExercise(ctx context.Context) (*Exercise, error)
DeleteExercise(ctx context.Context, id string) error
GetExercises(ctx context.Context, offset int, count int) ([]Exercise, error)
CountExercises(ctx context.Context) (int, error)
}
type Exercise struct {
ID string `json:"id"`
Name string `json:"name"`
Equipment []Equipment `json:"equipment"`
Metric Metric `json:"metric"`
Load Load `json:"load"`
Tags []string `json:"tags"`
Notes *string `json:"notes"`
ModifiedAt time.Time `json:"modified_at"`
}
type ExerciseService struct {
repo ExerciseRepository
}
func NewExerciseService(r ExerciseRepository) *ExerciseService {
return &ExerciseService{repo: r}
}
func (s *ExerciseService) GetExercises(ctx context.Context, page int, count int) ([]Exercise, error) {
offset := (page - 1) * count
return s.repo.GetExercises(ctx, offset, count)
}
func (s *ExerciseService) CountExercises(ctx context.Context) (int, error) {
return s.repo.CountExercises(ctx)
}