60 lines
1.8 KiB
Go
60 lines
1.8 KiB
Go
package usermngmt
|
|
|
|
import (
|
|
"time"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
// User ...
|
|
type User struct {
|
|
ID primitive.ObjectID `bson:"_id" json:"_id"`
|
|
Name string `bson:"name" json:"name"`
|
|
SearchString string `bson:"searchString" json:"-"`
|
|
Phone string `bson:"phone" json:"phone"` // unique
|
|
Email string `bson:"email" json:"email"` // unique
|
|
HashedPassword string `bson:"hashedPassword" json:"-"`
|
|
Status string `bson:"status" json:"status"`
|
|
RoleID primitive.ObjectID `bson:"roleId" json:"roleId"`
|
|
Other string `bson:"other" json:"other"`
|
|
CreatedAt time.Time `bson:"createdAt" json:"createdAt"`
|
|
UpdatedAt time.Time `bson:"updatedAt" json:"updatedAt"`
|
|
}
|
|
|
|
// ResponseUser ...
|
|
type ResponseUser struct {
|
|
ID string `json:"_id"`
|
|
Name string `json:"name"`
|
|
Phone string `json:"phone"`
|
|
Email string `json:"email"`
|
|
Status string `json:"status"`
|
|
Role RoleShort `json:"role"`
|
|
Other string `json:"other"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
// Role ...
|
|
type Role struct {
|
|
ID primitive.ObjectID `bson:"_id" json:"_id"`
|
|
Name string `bson:"name" json:"name"`
|
|
Code string `bson:"code" json:"code"`
|
|
IsAdmin bool `bson:"isAdmin" json:"isAdmin"`
|
|
CreatedAt time.Time `bson:"createdAt" json:"createdAt"`
|
|
UpdatedAt time.Time `bson:"updatedAt" json:"updatedAt"`
|
|
}
|
|
|
|
type RoleShort struct {
|
|
ID string `json:"_id"`
|
|
Name string `json:"name"`
|
|
IsAdmin bool `json:"isAdmin"`
|
|
}
|
|
|
|
type (
|
|
// ResponseUserAll ...
|
|
ResponseUserAll struct {
|
|
List []ResponseUser `json:"list"`
|
|
Total int64 `json:"total"`
|
|
}
|
|
)
|