ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
role_repository Class Reference

Reads and writes roles to data storage. More...

#include <role_repository.hpp>

Collaboration diagram for role_repository:
Collaboration graph

Public Types

using context = ores::database::context
 

Public Member Functions

 role_repository (context ctx)
 
std::string sql ()
 Returns the SQL created by sqlgen to construct the table.
 
std::vector< domain::roleread_latest (std::uint32_t offset, std::uint32_t limit)
 Reads latest roles with pagination support.
 
std::uint32_t get_total_role_count ()
 Gets the total count of active roles.
 
std::vector< domain::roleread_latest_by_name (const std::string &name)
 Reads latest role by name.
 
std::vector< domain::roleread_latest_by_ids (const std::vector< boost::uuids::uuid > &ids)
 Reads multiple roles by their IDs in a single query.
 
void remove (const boost::uuids::uuid &role_id)
 Deletes a role by closing its temporal validity.
 
void write (const domain::role &role)
 Writes roles to database.
 
void write (const std::vector< domain::role > &roles)
 
std::vector< domain::roleread_latest ()
 Reads latest roles, possibly filtered by ID.
 
std::vector< domain::roleread_latest (const boost::uuids::uuid &id)
 

Detailed Description

Reads and writes roles to data storage.

Member Function Documentation

◆ read_latest()

std::vector< domain::role > read_latest ( std::uint32_t  offset,
std::uint32_t  limit 
)

Reads latest roles with pagination support.

Parameters
offsetNumber of records to skip
limitMaximum number of records to return
Returns
Vector of roles within the specified range

◆ get_total_role_count()

std::uint32_t get_total_role_count ( )

Gets the total count of active roles.

Returns
Total number of roles with valid_to == max_timestamp

◆ read_latest_by_ids()

std::vector< domain::role > read_latest_by_ids ( const std::vector< boost::uuids::uuid > &  ids)

Reads multiple roles by their IDs in a single query.

Uses IN clause to efficiently fetch multiple roles at once, avoiding N+1 query issues.