30 lines
525 B
Go
30 lines
525 B
Go
|
/**
|
||
|
* file: types/location.go
|
||
|
* author: Theo Technicguy
|
||
|
* license: Apache 2.0
|
||
|
*
|
||
|
* Location type and functions
|
||
|
*/
|
||
|
|
||
|
package types
|
||
|
|
||
|
type Location struct {
|
||
|
Id uint `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
Fridge bool `json:"fridge"`
|
||
|
Freezer bool `json:"freezer"`
|
||
|
Tags []Tag `json:"tags"`
|
||
|
}
|
||
|
|
||
|
func (l *Location) ValidKind() bool {
|
||
|
return !(l.Fridge && l.Freezer)
|
||
|
}
|
||
|
|
||
|
func (l *Location) ValidName() bool {
|
||
|
return l.Name != ""
|
||
|
}
|
||
|
|
||
|
func (l *Location) Valid() bool {
|
||
|
return l.ValidKind() && l.ValidName()
|
||
|
}
|