package entity import ( "backend/pkg/permission/domain/permission" "go.mongodb.org/mongo-driver/v2/bson" ) // Role 角色實體 (MongoDB) type Role struct { ID bson.ObjectID `bson:"_id,omitempty" json:"id"` ClientID int `bson:"client_id" json:"client_id"` UID string `bson:"uid" json:"uid"` Name string `bson:"name" json:"name"` Status permission.RecordState `bson:"status" json:"status"` Permissions permission.Permissions `bson:"-" json:"permissions,omitempty"` // 關聯權限 (不存資料庫) permission.TimeStamp `bson:",inline"` } // CollectionName 集合名稱 func (r *Role) CollectionName() string { return "role" } //// IsActive 是否啟用 //func (r *Role) IsActive() bool { // return r.Status.IsActive() //} // //// IsAdmin 是否為管理員角色 //func (r *Role) IsAdmin(adminUID string) bool { // return r.UID == adminUID //} // //// Validate 驗證角色資料 //func (r *Role) Validate() error { // if r.UID == "" { // return ErrInvalidData("role uid is required") // } // if r.Name == "" { // return ErrInvalidData("role name is required") // } // if r.ClientID <= 0 { // return ErrInvalidData("role client_id must be positive") // } // return nil //} // //// ErrInvalidData 無效資料錯誤 //func ErrInvalidData(msg string) error { // return &ValidationError{Message: msg} //} // //// ValidationError 驗證錯誤 //type ValidationError struct { // Message string //} // //func (e *ValidationError) Error() string { // return e.Message //}