68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package main
|
|
|
|
import "time"
|
|
|
|
/*
|
|
This file is part of taler-dashboard
|
|
Copyright (C) 2023 Özgür Kesim
|
|
|
|
taler-dashboard is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU Affero General Public License as published by the
|
|
Free Software Foundation; either version 3, or (at your option) any later
|
|
version.
|
|
|
|
taler-dashboard is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
|
License for more details.
|
|
|
|
You can receive a copy of the GNU Affero General Public License from
|
|
<http://www.gnu.org/licenses/>
|
|
|
|
@author Özgür Kesim <oec-taler@kesim.org>
|
|
*/
|
|
|
|
type Project struct {
|
|
Id int
|
|
Name string
|
|
Description string
|
|
Status KeyVal
|
|
ViewState KeyVal `json:"view_state"`
|
|
Enabled bool
|
|
InheritGlobal bool `json:"inherit_global"`
|
|
AccessLevel KeyVal `json:"AccessLevel"`
|
|
Versions Versions
|
|
Categories Categories
|
|
// CustomFields []any `json:"custom_fields"`
|
|
}
|
|
|
|
type Versions []Version
|
|
type Version struct {
|
|
KeyVal
|
|
Description string
|
|
Released bool
|
|
Obsolete bool
|
|
Timestamp time.Time
|
|
}
|
|
|
|
type VersionsByDate Versions
|
|
|
|
func (v VersionsByDate) Len() int { return len(v) }
|
|
func (v VersionsByDate) Less(i, j int) bool { return v[i].Timestamp.Before(v[j].Timestamp) }
|
|
func (v VersionsByDate) Swap(i, j int) { v[i], v[j] = v[j], v[i] }
|
|
|
|
type Categories []Category
|
|
type Category struct {
|
|
KeyVal
|
|
Project KeyVal
|
|
}
|
|
|
|
func (vs VersionsByDate) Get(version string) *Version {
|
|
for i, v := range vs {
|
|
if v.Name == version {
|
|
return &vs[i]
|
|
}
|
|
}
|
|
return nil
|
|
}
|