backend/tmp/reborn-mongo/domain/entity/user_role.go

42 lines
1023 B
Go

package entity
import "go.mongodb.org/mongo-driver/bson/primitive"
// UserRole 使用者角色實體 (MongoDB)
type UserRole struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id"`
Brand string `bson:"brand" json:"brand"`
UID string `bson:"uid" json:"uid"`
RoleID string `bson:"role_id" json:"role_id"`
Status Status `bson:"status" json:"status"`
TimeStamp `bson:",inline"`
}
// CollectionName 集合名稱
func (UserRole) CollectionName() string {
return "user_role"
}
// IsActive 是否啟用
func (ur *UserRole) IsActive() bool {
return ur.Status.IsActive()
}
// Validate 驗證資料
func (ur *UserRole) Validate() error {
if ur.UID == "" {
return ErrInvalidData("user uid is required")
}
if ur.RoleID == "" {
return ErrInvalidData("role_id is required")
}
return nil
}
// RoleUserCount 角色使用者數量統計
type RoleUserCount struct {
RoleID string `bson:"_id" json:"role_id"`
Count int `bson:"count" json:"count"`
}