grafana/pkg/models/team.go

81 lines
1.4 KiB
Go
Raw Normal View History

package models
import (
"errors"
"time"
)
// Typed errors
var (
2017-12-08 09:25:45 -06:00
ErrTeamNotFound = errors.New("Team not found")
ErrTeamNameTaken = errors.New("Team name is taken")
)
2017-12-08 09:25:45 -06:00
// Team model
type Team struct {
2017-04-09 18:24:16 -05:00
Id int64 `json:"id"`
OrgId int64 `json:"orgId"`
Name string `json:"name"`
Email string `json:"email"`
2017-04-09 18:24:16 -05:00
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
}
// ---------------------
// COMMANDS
2017-12-08 09:25:45 -06:00
type CreateTeamCommand struct {
Name string `json:"name" binding:"Required"`
Email string `json:"email"`
2017-04-09 18:24:16 -05:00
OrgId int64 `json:"-"`
2017-12-08 09:25:45 -06:00
Result Team `json:"-"`
}
2017-12-08 09:25:45 -06:00
type UpdateTeamCommand struct {
Id int64
Name string
Email string
2017-04-18 08:01:05 -05:00
}
2017-12-08 09:25:45 -06:00
type DeleteTeamCommand struct {
Id int64
}
2017-12-08 09:25:45 -06:00
type GetTeamByIdQuery struct {
Id int64
2017-12-08 09:25:45 -06:00
Result *Team
}
2017-12-08 09:25:45 -06:00
type GetTeamsByUserQuery struct {
2017-12-11 10:46:05 -06:00
UserId int64 `json:"userId"`
2017-12-08 09:25:45 -06:00
Result []*Team `json:"teams"`
2017-05-22 03:33:17 -05:00
}
2017-12-08 09:25:45 -06:00
type SearchTeamsQuery struct {
Query string
Name string
Limit int
Page int
OrgId int64
2017-12-08 09:25:45 -06:00
Result SearchTeamQueryResult
2017-04-09 18:24:16 -05:00
}
type SearchTeamDto struct {
Id int64 `json:"id"`
OrgId int64 `json:"orgId"`
Name string `json:"name"`
Email string `json:"email"`
AvatarUrl string `json:"avatarUrl"`
MemberCount int64 `json:"memberCount"`
}
2017-12-08 09:25:45 -06:00
type SearchTeamQueryResult struct {
TotalCount int64 `json:"totalCount"`
Teams []*SearchTeamDto `json:"teams"`
Page int `json:"page"`
PerPage int `json:"perPage"`
}