23 lines
1.2 KiB
Go
23 lines
1.2 KiB
Go
// monorepo/cloud/maplefile-backend/internal/maplefile/domain/storageusageevent/interface.go
|
|
package storageusageevent
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/gocql/gocql"
|
|
)
|
|
|
|
// StorageUsageEventRepository defines the interface for storage usage events
|
|
type StorageUsageEventRepository interface {
|
|
Create(ctx context.Context, event *StorageUsageEvent) error
|
|
CreateMany(ctx context.Context, events []*StorageUsageEvent) error
|
|
GetByUserAndDay(ctx context.Context, userID gocql.UUID, eventDay time.Time) ([]*StorageUsageEvent, error)
|
|
GetByUserDateRange(ctx context.Context, userID gocql.UUID, startDay, endDay time.Time) ([]*StorageUsageEvent, error)
|
|
DeleteByUserAndDay(ctx context.Context, userID gocql.UUID, eventDay time.Time) error
|
|
DeleteByUserID(ctx context.Context, userID gocql.UUID) error
|
|
GetLast7DaysEvents(ctx context.Context, userID gocql.UUID) ([]*StorageUsageEvent, error)
|
|
GetLastNDaysEvents(ctx context.Context, userID gocql.UUID, days int) ([]*StorageUsageEvent, error)
|
|
GetMonthlyEvents(ctx context.Context, userID gocql.UUID, year int, month time.Month) ([]*StorageUsageEvent, error)
|
|
GetYearlyEvents(ctx context.Context, userID gocql.UUID, year int) ([]*StorageUsageEvent, error)
|
|
}
|