2014-08-15 20:13:02 -07:00
|
|
|
// Copyright 2014 Team 254. All Rights Reserved.
|
|
|
|
|
// Author: pat@patfairbank.com (Patrick Fairbank)
|
|
|
|
|
//
|
|
|
|
|
// Model and datastore CRUD methods for the text on a lower third slide.
|
|
|
|
|
|
2017-08-23 22:41:56 -07:00
|
|
|
package model
|
2014-08-15 20:13:02 -07:00
|
|
|
|
2021-05-09 21:12:23 -07:00
|
|
|
import (
|
|
|
|
|
"sort"
|
|
|
|
|
)
|
|
|
|
|
|
2014-08-15 20:13:02 -07:00
|
|
|
type LowerThird struct {
|
2021-05-09 21:12:23 -07:00
|
|
|
Id int64 `db:"id"`
|
2015-08-22 18:27:31 -07:00
|
|
|
TopText string
|
|
|
|
|
BottomText string
|
|
|
|
|
DisplayOrder int
|
2021-05-09 21:12:23 -07:00
|
|
|
AwardId int64
|
2014-08-15 20:13:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) CreateLowerThird(lowerThird *LowerThird) error {
|
2021-05-09 21:12:23 -07:00
|
|
|
return database.tables[LowerThird{}].create(lowerThird)
|
2014-08-15 20:13:02 -07:00
|
|
|
}
|
|
|
|
|
|
2021-05-09 21:12:23 -07:00
|
|
|
func (database *Database) GetLowerThirdById(id int64) (*LowerThird, error) {
|
|
|
|
|
var lowerThird *LowerThird
|
|
|
|
|
err := database.tables[LowerThird{}].getById(id, &lowerThird)
|
2014-08-15 20:13:02 -07:00
|
|
|
return lowerThird, err
|
|
|
|
|
}
|
|
|
|
|
|
2021-05-09 21:12:23 -07:00
|
|
|
func (database *Database) UpdateLowerThird(lowerThird *LowerThird) error {
|
|
|
|
|
return database.tables[LowerThird{}].update(lowerThird)
|
2014-08-15 20:13:02 -07:00
|
|
|
}
|
|
|
|
|
|
2021-05-09 21:12:23 -07:00
|
|
|
func (database *Database) DeleteLowerThird(id int64) error {
|
|
|
|
|
return database.tables[LowerThird{}].delete(id)
|
2014-08-15 20:13:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) TruncateLowerThirds() error {
|
2021-05-09 21:12:23 -07:00
|
|
|
return database.tables[LowerThird{}].truncate()
|
2014-08-15 20:13:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) GetAllLowerThirds() ([]LowerThird, error) {
|
|
|
|
|
var lowerThirds []LowerThird
|
2021-05-09 21:12:23 -07:00
|
|
|
if err := database.tables[LowerThird{}].getAll(&lowerThirds); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
sort.Slice(lowerThirds, func(i, j int) bool {
|
|
|
|
|
return lowerThirds[i].DisplayOrder < lowerThirds[j].DisplayOrder
|
|
|
|
|
})
|
|
|
|
|
return lowerThirds, nil
|
2014-08-15 20:13:02 -07:00
|
|
|
}
|
2019-08-09 23:13:45 -07:00
|
|
|
|
2021-05-09 21:12:23 -07:00
|
|
|
func (database *Database) GetLowerThirdsByAwardId(awardId int64) ([]LowerThird, error) {
|
|
|
|
|
lowerThirds, err := database.GetAllLowerThirds()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var matchingLowerThirds []LowerThird
|
|
|
|
|
for _, lowerThird := range lowerThirds {
|
|
|
|
|
if lowerThird.AwardId == awardId {
|
|
|
|
|
matchingLowerThirds = append(matchingLowerThirds, lowerThird)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return matchingLowerThirds, nil
|
2019-08-09 23:13:45 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) GetNextLowerThirdDisplayOrder() int {
|
2021-05-09 21:12:23 -07:00
|
|
|
lowerThirds, err := database.GetAllLowerThirds()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
if len(lowerThirds) == 0 {
|
|
|
|
|
return 1
|
|
|
|
|
}
|
|
|
|
|
return lowerThirds[len(lowerThirds)-1].DisplayOrder + 1
|
2019-08-09 23:13:45 -07:00
|
|
|
}
|