package dao

import (
	"hamster-tycoon/storage/model"
)

type Database interface {

	// start: user dao funcs
	GetAllUsers() ([]*model.User, error)
	GetUsersByID(string) (*model.User, error)
	GetUsersByGoogleID(string) (*model.User, error)
	CreateUser(*model.User) error
	DeleteUser(string) error
	UpdateUser(*model.User) error
	// end: user dao funcs

	// start: cage funcs
	GetAllCages() ([]*model.Cage, error)
	GetCageByID(string) (*model.Cage, error)
	CreateCage(*model.Cage) error
	DeleteCage(string) error
	UpdateCage(*model.Cage) error
	// end: cage dao funcs
	// start: hamster funcs
	GetAllHamsters(string) ([]*model.Hamster, error)
	GetHamsterByID(string, string) (*model.Hamster, error)
	CreateHamster(*model.Hamster) error
	DeleteHamster(string) error
	UpdateHamster(*model.Hamster) error
	// end: hamster dao funcs

}
