1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00
wakapi/models/summary.go
Ferdinand Mütsch 851f378684 Add database schema to persist summaries with their accompanying summary items.
Add basic methods to generate summary aggregation jobs.
2019-10-09 23:26:28 +02:00

37 lines
1.1 KiB
Go

package models
import (
"time"
)
const (
NSummaryTypes uint8 = 4
SummaryProject uint8 = 0
SummaryLanguage uint8 = 1
SummaryEditor uint8 = 2
SummaryOS uint8 = 3
)
type Summary struct {
ID uint `json:"-" gorm:"primary_key"`
UserID string `json:"user_id" gorm:"not null; index:idx_time_summary_user"`
FromTime *time.Time `json:"from" gorm:"not null; type:timestamp; default:now(); index:idx_time_summary_user"`
ToTime *time.Time `json:"to" gorm:"not null; type:timestamp; default:now(); index:idx_time_summary_user"`
Projects []SummaryItem `json:"projects"`
Languages []SummaryItem `json:"languages"`
Editors []SummaryItem `json:"editors"`
OperatingSystems []SummaryItem `json:"operating_systems"`
}
type SummaryItem struct {
ID uint `json:"-" gorm:"primary_key"`
SummaryID uint `json:"-"`
Key string `json:"key"`
Total time.Duration `json:"total"`
}
type SummaryItemContainer struct {
Type uint8
Items []SummaryItem
}