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"` }