Aller au contenu

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_SIZES du 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 = companyLegalForms du contrat Espace Financement.
  • sort : whitelist companyName|siren|leiExpiresAt|createdAt × asc|desc, défaut companyName:asc. NULLS LAST dans les deux sens sur les colonnes nullables (nom, SIREN, LEI) : les brouillons sans nom ou sans LEI ferment la liste. id DESC ajouté en second critère pour une pagination stable ; leiExpiresAt trie sur leiObtainedAt (+ 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 sans leiExpiresAt et 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_zod local).