generated from OtusGolang/home_work
-
Notifications
You must be signed in to change notification settings - Fork 0
/
storage.go
30 lines (24 loc) · 1.14 KB
/
storage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package interfaces
import "github.com/ezhk/golang-learning/banners-rotation/internal/structs"
type Storage interface {
CreateBanner(string, string) (structs.Banner, error)
ReadBanners() ([]*structs.Banner, error)
UpdateBanner(structs.Banner) (structs.Banner, error)
DeleteBanner(uint64) error
CreateSlot(string, string) (structs.Slot, error)
ReadSlots() ([]*structs.Slot, error)
UpdateSlot(structs.Slot) (structs.Slot, error)
DeleteSlot(uint64) error
CreateGroup(string, string) (structs.Group, error)
ReadGroups() ([]*structs.Group, error)
UpdateGroup(structs.Group) (structs.Group, error)
DeleteGroup(uint64) error
CreateBannerPlacement(uint64, uint64, uint64) (structs.BannerPlacement, error)
ReadBannerHighestScore(structs.BannerFilter) (structs.BannerPlacement, error)
ReadBannersPlacements(structs.BannerFilter) ([]*structs.BannerPlacement, error)
ReadBannersShows(structs.BannerFilter) ([]*structs.SummaryBannersShows, error)
UpdateBannerPlacement(structs.BannerPlacement) (structs.BannerPlacement, error)
DeleteBannerPlacement(uint64) error
ProcessBannerEvent(uint64, string) error
RecalculateBannersScore(structs.BannerFilter) error
}