pelican/internal/board/status.go
Dan Anglin 0e186be66b
refactor: create BoltItem interface
Create a BoltItem interface which is used to make
the database fucntions more generic.

As part of this change, the Status and Card types
have migrated back into the board package.
2021-09-23 21:21:44 +01:00

59 lines
1,002 B
Go

package board
// Status represents the status of the Kanban board.
type Status struct {
ID int
Name string
CardIds []int
Order int
}
// UpdateId updates the ID of the Status value.
func (s *Status) UpdateId(id int) {
s.ID = id
}
// Id returns the ID of the Status value.
func (s *Status) Id() int {
return s.ID
}
func (s *Status) AddCardID(id int) {
s.CardIds = append(s.CardIds, id)
}
// ByStatusOrder implements sort.Interface for []Status based on the Order field.
type ByStatusOrder []Status
func (s ByStatusOrder) Len() int {
return len(s)
}
func (s ByStatusOrder) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s ByStatusOrder) Less(i, j int) bool {
return s[i].Order < s[j].Order
}
// defaultStatusList returns the default list of statuses.
func defaultStatusList() []Status {
return []Status{
{
ID: -1,
Name: "To Do",
Order: 1,
},
{
ID: -1,
Name: "Doing",
Order: 2,
},
{
ID: -1,
Name: "Done",
Order: 3,
},
}
}