Dan Anglin
0e186be66b
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.
59 lines
1,002 B
Go
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,
|
|
},
|
|
}
|
|
}
|