21 lines
902 B
Go
21 lines
902 B
Go
package repositories
|
|
|
|
import (
|
|
"context"
|
|
"counter/internal/domain/entities"
|
|
"time"
|
|
)
|
|
|
|
// CounterRepository defines the interface for counter data operations
|
|
type CounterRepository interface {
|
|
Create(ctx context.Context, counter *entities.Counter) error
|
|
FindByID(ctx context.Context, id, userID int) (*entities.CounterWithStats, error)
|
|
FindByUserID(ctx context.Context, userID int, search string) ([]*entities.CounterWithStats, error)
|
|
Update(ctx context.Context, counter *entities.Counter) error
|
|
Delete(ctx context.Context, id, userID int) error
|
|
AddEntry(ctx context.Context, entry *entities.CounterEntry) error
|
|
GetEntries(ctx context.Context, counterID, userID int, startDate, endDate *time.Time) ([]*entities.CounterEntry, error)
|
|
GetDailyStats(ctx context.Context, counterID, userID int, days int) ([]*entities.DailyStat, error)
|
|
Exists(ctx context.Context, id, userID int) (bool, error)
|
|
}
|