CoolCMS API

AdvertHardDeleteRepositoryTrait

Read half of the advert hard delete (Bazaar and Comcat `AdvertRepository`): collects dependent data the database cascade cannot reach, and the schema foreign-key graph for the coverage check.

Orchestration lives in AdvertHardDeleteTrait, decisions in AdvertHardDeletePlan.

IMPORTANT: uses raw DBAL, not find(). It runs inside the open delete transaction and every Api read through the ORM calls UnitOfWork::clear(), which would break the pending work. Table names derive from the ORM mapping of the advert entity (prefix cms_mod_<module>_), so one code serves both modules.

Tags
requires

OrmRepository $this->entityManager, getEntityClass()

Table of Contents

Methods

fetchForeignKeyGraph()  : array<int, array{table: string, column: string, referencedTable: string, deleteRule: string}>
Returns all foreign keys of the current schema (for {@see \App\Core\Utils\ValueObjects\AdvertHardDeletePlan::uncoveredForeignKeys()}).
findHardDeleteDependents()  : array{messageThreadIds: list, ratingThreadIds: list, assetIds: list, files: list>}
advertTableName()  : string
Advert table from the ORM mapping (`cms_mod_bazaar_adverts` / `cms_mod_comcat_adverts`).

Methods

fetchForeignKeyGraph()

Returns all foreign keys of the current schema (for {@see \App\Core\Utils\ValueObjects\AdvertHardDeletePlan::uncoveredForeignKeys()}).

public fetchForeignKeyGraph() : array<int, array{table: string, column: string, referencedTable: string, deleteRule: string}>
Return values
array<int, array{table: string, column: string, referencedTable: string, deleteRule: string}>

findHardDeleteDependents()

public findHardDeleteDependents(array<int, int> $advertIds) : array{messageThreadIds: list, ratingThreadIds: list, assetIds: list, files: list>}
Parameters
$advertIds : array<int, int>
Return values
array{messageThreadIds: list, ratingThreadIds: list, assetIds: list, files: list>}

advertTableName()

Advert table from the ORM mapping (`cms_mod_bazaar_adverts` / `cms_mod_comcat_adverts`).

private advertTableName() : string
Return values
string
On this page

Search results