| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package models
- import (
- "errors"
- "time"
- )
- // Typed errors
- var (
- ErrUserNotFound = errors.New("User not found")
- )
- type User struct {
- Id int64
- Version int
- Email string
- Name string
- Login string
- Password string
- Salt string
- Rands string
- Company string
- IsAdmin bool
- AccountId int64
- Created time.Time
- Updated time.Time
- }
- // ---------------------
- // COMMANDS
- type CreateUserCommand struct {
- Email string `json:"email" binding:"Required"`
- Login string `json:"login"`
- Name string `json:"name"`
- Company string `json:"compay"`
- Password string `json:"password" binding:"Required"`
- IsAdmin bool `json:"-"`
- Result User `json:"-"`
- }
- type UpdateUserCommand struct {
- Name string `json:"name"`
- Email string `json:"email"`
- Login string `json:"login"`
- UserId int64 `json:"-"`
- }
- type SetUsingAccountCommand struct {
- UserId int64
- AccountId int64
- }
- // ----------------------
- // QUERIES
- type GetUserByLoginQuery struct {
- LoginOrEmail string
- Result *User
- }
- type GetUserByIdQuery struct {
- Id int64
- Result *User
- }
- type GetSignedInUserQuery struct {
- UserId int64
- Result *SignedInUser
- }
- type GetUserInfoQuery struct {
- UserId int64
- Result UserDTO
- }
- type SearchUsersQuery struct {
- Query string
- Page int
- Limit int
- Result []*UserSearchHitDTO
- }
- // ------------------------
- // DTO & Projections
- type SignedInUser struct {
- UserId int64
- AccountId int64
- AccountName string
- AccountRole RoleType
- Login string
- Name string
- Email string
- ApiKeyId int64
- IsGrafanaAdmin bool
- }
- type UserDTO struct {
- Email string `json:"email"`
- Name string `json:"name"`
- Login string `json:"login"`
- }
- type UserSearchHitDTO struct {
- Id int64 `json:"id"`
- Name string `json:"name"`
- Login string `json:"login"`
- Email string `json:"email"`
- IsAdmin bool `json:"isAdmin"`
- }
|