usermngmt/model/user_response.go

59 lines
1.6 KiB
Go
Raw Permalink Normal View History

2021-11-10 04:01:39 +00:00
package model
import (
2022-10-10 03:46:33 +00:00
"git.selly.red/Selly-Modules/usermngmt/internal"
2022-10-06 07:09:22 +00:00
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
2021-11-10 04:01:39 +00:00
"time"
)
// User ...
type User struct {
2021-11-29 03:01:04 +00:00
ID string `json:"_id"`
Name string `json:"name"`
Phone string `json:"phone"`
Email string `json:"email"`
Status string `json:"status"`
Role RoleShort `json:"role"`
RequireToChangePassword bool `json:"requireToChangePassword"`
Other interface{} `json:"other"`
Avatar interface{} `json:"avatar"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
2021-11-10 04:01:39 +00:00
}
2022-10-06 07:09:22 +00:00
// UserOtherBson ...
type UserOtherBson struct {
Supplier primitive.ObjectID `bson:"supplier"`
Inventories []primitive.ObjectID `bson:"inventories"`
IsPresident bool `bson:"isPresident"`
}
type UserOther struct {
Supplier string `json:"supplier"`
Inventories []string `json:"inventories"`
IsPresident bool `json:"isPresident"`
}
func (m User) GetUserOther() UserOther {
var (
userOtherBson UserOtherBson
)
bsonBytes, _ := bson.Marshal(m.Other)
bson.Unmarshal(bsonBytes, &userOtherBson)
return UserOther{
Supplier: userOtherBson.Supplier.Hex(),
Inventories: internal.ConvertObjectIDsToStrings(userOtherBson.Inventories),
IsPresident: userOtherBson.IsPresident,
}
}
2021-11-10 04:01:39 +00:00
type (
// UserAll ...
UserAll struct {
List []User `json:"list"`
Total int64 `json:"total"`
2021-11-16 10:47:54 +00:00
Limit int64 `json:"limit"`
2021-11-10 04:01:39 +00:00
}
)