Loggest thy stuff
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

39 lines
1.4 KiB

package database
import (
"context"
"git.aiterp.net/stufflog3/stufflog3-api/internal/models"
"time"
)
type Database interface {
Scopes() ScopeRepository
Stats(scopeID int) StatRepository
Items(scopeID int) ItemRepository
}
type ScopeRepository interface {
Find(ctx context.Context, id int) (*models.Scope, error)
List(ctx context.Context) ([]models.ScopeEntry, error)
ListByUser(ctx context.Context, userID string) ([]models.ScopeEntry, error)
Create(ctx context.Context, scope models.ScopeEntry, owner models.ScopeMember) (*models.Scope, error)
Update(ctx context.Context, scope models.ScopeEntry) error
Delete(ctx context.Context, scope models.Scope) error
UpdateMember(ctx context.Context, scope models.Scope, member models.ScopeMember) (*models.Scope, error)
DeleteMember(ctx context.Context, scope models.Scope, userID string) (*models.Scope, error)
}
type StatRepository interface {
Find(ctx context.Context, id int) (*models.Stat, error)
List(ctx context.Context) ([]models.Stat, error)
Create(ctx context.Context, stat models.Stat) (*models.Stat, error)
Update(ctx context.Context, stat models.Stat) error
Delete(ctx context.Context, stat models.Stat) error
}
type ItemRepository interface {
Find(ctx context.Context, id int) (*models.Item, error)
List(ctx context.Context) ([]models.Item, error)
ListAcquired(ctx context.Context, from, to time.Time) ([]models.Item, error)
Create(ctx context.Context, stat models.Stat) (*models.Item, error)
}