class item_repository extends abstract_repository implements item_repository_interface

internal  
 

Item repository for domain items.

Handles persistence of items and their metadata sidecar table.

Constants

private TABLE

private TABLE_META

Methods

__construct(item_mapper $mapper)

Constructor.

create(item_dto_interface $dto)

Create a new item from a DTO.

item_interface|null
find_by_id(int $id)

Find item by ID including metadata.

update(item_dto_interface $dto)

Update an existing item.

void
delete(int $id)

Delete an item and its metadata.

array
get_metadata(int $itemid)

Fetch all metadata for an item.

void
save_metadata(int $itemid, array $metadata)

Save metadata key/value pairs (Upsert logic).

array
find_by_metadata(string $key, string $value)

Search for items by metadata key/value.

array
find_by_type(string $type)

Return all items of a given TYPE.

Details

at line 53
__construct(item_mapper $mapper)

Constructor.

Parameters

item_mapper $mapper

at line 67
item_interface create(item_dto_interface $dto)

Create a new item from a DTO.

Wraps insertion in a transaction to ensure Item+Metadata consistency.

Parameters

item_dto_interface $dto

Return Value

item_interface

Exceptions

JsonException

at line 148
item_interface|null find_by_id(int $id)

Find item by ID including metadata.

Parameters

int $id

Return Value

item_interface|null

Exceptions

dml_exception

at line 171
item_interface update(item_dto_interface $dto)

Update an existing item.

Parameters

item_dto_interface $dto

Return Value

item_interface

Exceptions

moodle_exception

at line 217
void delete(int $id)

Delete an item and its metadata.

Parameters

int $id

Return Value

void

Exceptions

dml_exception

at line 241
array get_metadata(int $itemid)

Fetch all metadata for an item.

Parameters

int $itemid

Return Value

array

Exceptions

dml_exception

at line 254
void save_metadata(int $itemid, array $metadata)

Save metadata key/value pairs (Upsert logic).

Parameters

int $itemid
array $metadata

Return Value

void

Exceptions

JsonException

at line 287
array find_by_metadata(string $key, string $value)

Search for items by metadata key/value.

Parameters

string $key
string $value

Return Value

array

at line 313
array find_by_type(string $type)

Return all items of a given TYPE.

Parameters

string $type

Return Value

array