package sql import ( "github.com/google/uuid" "mangezmieux-backend/internal/acl/model" model2 "mangezmieux-backend/internal/model" ) type Dao interface { //Role GetRole(id uuid.UUID) (*model.Role, error) GetRoleByName(name string) (*model.Role, error) AddRole(roleName string, metadata model2.Metadata) (*model.Role, error) DeleteRole(id uuid.UUID) error GetAllRole() ([]*model.Role, error) //Resource AddResource(resourceName string, metadata model2.Metadata) (*model.Resource, error) DeleteResource(id uuid.UUID) error GetResource(id uuid.UUID) (*model.Resource, error) GetResourceByName(name string) (*model.Resource, error) GetAllResource() ([]*model.Resource, error) //RoleVerbResource GetRoleVerbResource(id uuid.UUID) (*model.RoleVerbResource, error) GetRoleVerbResourceByRoleResourceAndVerb(roleId, resourceId uuid.UUID, verb string) (*model.RoleVerbResource, error) GetRoleVerbResourceByRoleResource(roleId, resourceId uuid.UUID) ([]*model.RoleVerbResource, error) GetRoleVerbResourceByRole(roleId uuid.UUID) ([]*model.RoleVerbResource, error) AddRoleVerbResource(roleId, resourceId uuid.UUID, verb string, metadata model2.Metadata) (*model.RoleVerbResource, error) DeleteRoleVerbResource(id uuid.UUID) error //UserRole GetUserRole(id uuid.UUID) (*model.UserRole, error) GetUserRoleByUserAndRole(userId, roleId uuid.UUID) (*model.UserRole, error) GetUserRoleByUser(userId uuid.UUID) ([]*model.UserRole, error) GetUserRoleByRole(role uuid.UUID) ([]*model.UserRole, error) AddUserRole(userId, roleId uuid.UUID, metadata model2.Metadata) (*model.UserRole, error) DeleteUserRole(id uuid.UUID) error }