26 lines
770 B
Go
26 lines
770 B
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
"haixun-backend/internal/model/permission/domain/entity"
|
|
)
|
|
|
|
type PermissionFilter struct {
|
|
Status entity.Status
|
|
Type entity.Type
|
|
}
|
|
|
|
type PermissionRepository interface {
|
|
EnsureIndexes(ctx context.Context) error
|
|
UpsertByName(ctx context.Context, permission *entity.Permission) error
|
|
List(ctx context.Context, filter PermissionFilter) ([]*entity.Permission, error)
|
|
ListByIDs(ctx context.Context, ids []string) ([]*entity.Permission, error)
|
|
}
|
|
|
|
type RolePermissionRepository interface {
|
|
EnsureIndexes(ctx context.Context) error
|
|
ListByRoles(ctx context.Context, tenantID string, roleKeys []string) ([]*entity.RolePermission, error)
|
|
SetForRole(ctx context.Context, tenantID, roleKey string, permissionIDs []string) error
|
|
}
|