41 lines
677 B
Go
41 lines
677 B
Go
package game
|
|
|
|
import (
|
|
"errors"
|
|
"github.com/google/uuid"
|
|
"opensavecloudserver/data/repository/user"
|
|
"time"
|
|
)
|
|
|
|
type (
|
|
GameRepository interface {
|
|
GameMetadataByID(ID ID) (GameMetadata, error)
|
|
CreateGameEntry(game NewGameEntry) (GameMetadata, error)
|
|
GameSavesHistory(gameID ID) ([]GameSaveVersion, error)
|
|
UserGamesByUserID(userID user.ID) ([]GameMetadata, error)
|
|
}
|
|
|
|
GameMetadata interface {
|
|
ID() uuid.UUID
|
|
Name() string
|
|
Path() string
|
|
Revision() string
|
|
}
|
|
|
|
GameSaveVersion interface {
|
|
ID() string
|
|
Date() time.Time
|
|
}
|
|
|
|
NewGameEntry interface {
|
|
Path() string
|
|
Name() string
|
|
}
|
|
|
|
ID uuid.UUID
|
|
)
|
|
|
|
var (
|
|
ErrGameNotFound = errors.New("game not found")
|
|
)
|