Liste admin des sociétés emprunteuses (BO Projets)¶
GET /administration/project-owner-company (AdminAuthGuard) liste les project_owner_company pour la page « Sociétés » du BO Projets (BRI-2210). Pagination côté serveur, même forme que la liste admin des dossiers.
Source : project-owner-company-administration.controller.ts, contrat getProjectOwnerCompanies.endpoint.ts (api-communication-bricksoffice).
Query¶
offset/take(défaut 100, max 200 =TABLE_PAGE_SIZESdu BO).q: ILIKE sur nom, SIREN (espaces ignorés des deux côtés) et id.%et_saisis sont échappés (recherche littérale).legalForm: paramètre répété (legalForm=SAS&legalForm=SCI), valeurs =companyLegalFormsdu contrat Espace Financement.sort: whitelistcompanyName|siren|leiExpiresAt|createdAt×asc|desc, défautcompanyName:asc.NULLS LASTdans les deux sens sur les colonnes nullables (nom, SIREN, LEI) : les brouillons sans nom ou sans LEI ferment la liste.id DESCajouté en second critère pour une pagination stable ;leiExpiresAttrie surleiObtainedAt(+ 1 an, même ordre).
Réponse¶
{ items, totalCount }. Le contrat n'expose que ce que le BO rend : id, companyName, siren, legalForm, leiNumber, leiExpiresAt, projectCount, createdAt.
- Une ligne = une row
project_owner_company. Nom, SIREN, forme et LEI viennent du JSON (company.*,banking.leiNumber/leiObtainedAt) : la table n'a pas de colonne générée pour ces champs. leiExpiresAt=leiObtainedAt+ 1 an (computeLeiExpiresAt), comme la liste des dossiers.projectCount= dossiers liés à la société (project_financing_request.companyId).- Un brouillon sans nom ni SIREN sort avec ces champs absents ; le BO affiche « Sans nom » / « — », et un badge « LEI non renseigné » sans
leiNumber; un numéro sans date d'obtention (finalisation en cours) sort sansleiExpiresAtet le BO affiche « LEI valide ».
Choix¶
- Périmètre = sociétés Espace Financement seulement ; les SPV legacy restent sur
GET /administration/spv. - Pas de statut LEI calculé ni de filtre LEI : le BO réutilise la cellule « Péremption LEI » de la liste des dossiers, avec un badge quand la date manque.
- Pas d'index dédié : quelques milliers de lignes, un seq scan suffit.
- Le validateur de row est inliné dans
listForAdministration(projection admin,uuidv7_zodlocal).