backend/pkg/permission/domain/repository/user_role.go

38 lines
1.3 KiB
Go

package repository
import (
"backend/pkg/permission/domain/entity"
"backend/pkg/permission/domain/permission"
"context"
mongodriver "go.mongodb.org/mongo-driver/v2/mongo"
)
// UserRoleRepository 使用者角色 Repository 介面
type UserRoleRepository interface {
// Create 建立使用者角色
Create(ctx context.Context, userRole *entity.UserRole) error
// Update 更新使用者角色
Update(ctx context.Context, uid, roleID string) (*entity.UserRole, error)
// Delete 刪除使用者角色
Delete(ctx context.Context, uid string) error
// Get 取得使用者角色
Get(ctx context.Context, uid string) (*entity.UserRole, error)
// GetByRoleID 根據角色 ID 取得所有使用者
GetByRoleID(ctx context.Context, roleID string) ([]*entity.UserRole, error)
// List 列出所有使用者角色
List(ctx context.Context, filter UserRoleFilter) ([]*entity.UserRole, error)
// CountByRoleID 統計每個角色的使用者數量
CountByRoleID(ctx context.Context, roleIDs []string) (map[string]int, error)
// Exists 檢查使用者是否已有角色
Exists(ctx context.Context, uid string) (bool, error)
Index20251009004UP(ctx context.Context) (*mongodriver.Cursor, error)
}
// UserRoleFilter 使用者角色查詢過濾條件
type UserRoleFilter struct {
Brand string
RoleID string
Status *permission.RecordState
}