package entity

import (
	"backend/pkg/permission/domain/permission"

	"go.mongodb.org/mongo-driver/v2/bson"
)

// UserRole 使用者角色實體 (MongoDB)
type UserRole struct {
	ID     bson.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 permission.RecordState `bson:"status" json:"status"`

	permission.TimeStamp `bson:",inline"`
}

// CollectionName 集合名稱
func (ur *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"`
//}
