package rbac

import (
	"github.com/tidbcloud/account/internel/dao/entity"
)

/*
	type PrivilegeFilter struct {
		ID          uint64 `json:"id" form:"id"`
		ResourceUri string `json:"resource_uri" form:"resource_uri"`
		Url         string `json:"url" form:"url"`
		System      string `json:"system" form:"system"`
		Description string `json:"description" form:"description"`
	}
*/
type PrivilegesFilter struct {
	ID          []uint64 `json:"id" form:"id"`
	ResourceUri []string `json:"resource_uri" form:"resource_uri"`
	Url         []string `json:"url" form:"url"`
	System      []string `json:"system" form:"system"`
	Description []string `json:"description" form:"description"`
}
type RolePrivilegeFilter struct {
	IDs          []entity.ID
	RoleIDs      []entity.ID
	PrivilegeIDs []entity.ID
}

type ListPrivilegeParam struct {
	Filter PrivilegesFilter
	SortBy string `json:"sort_by" form:"sort_by"`
	Order  string `json:"order" form:"order"`
	Limit  int    `json:"limit" form:"limit"`
	Offset int    `json:"offset" form:"offset"`
}

type ListPrivilegeResult struct {
	Total int64
	List  []entity.RbacPrivilege
}

type ListRoleParam struct {
	SortBy string `json:"sort_by" form:"sort_by"`
	Order  string `json:"order" form:"order"`
	Limit  int    `json:"limit" form:"limit"`
	Offset int    `json:"offset" form:"offset"`
}

type ListRoleResult struct {
	Total int64
	List  []entity.RbacRole
}
