Liste admin des demandes de financement (BO Projets)¶
GET /administration/project-financing-request (AdminAuthGuard) liste les dossiers Espace Financement pour la page « Demandes de financement » du BO Projets (BRI-2196). Pagination côté serveur : 8 500 dossiers Bubble à reprendre, +20 par jour.
Source : project-financing-request-administration.controller.ts, contrat getProjectFinancingRequests.endpoint.ts (api-communication-bricksoffice).
Query¶
offset/take(défaut 100, max 200 =TABLE_PAGE_SIZESdu BO).q: ILIKE sur nom, id, business id, société porteuse, email du créateur.%et_saisis sont échappés (recherche littérale).statusetcategory: paramètres répétés (status=a&status=b), une valeur seule arrive en string.createdOn: jour civilYYYY-MM-DDluat time zone 'Europe/Paris'.sort: whitelistcreatedAt|name|status×asc|desc, défautcreatedAt:desc.id DESCajouté en second critère pour une pagination stable.
Réponse¶
{ items, totalCount }. Le contrat n'expose que ce que le BO rend : id, businessId, projectId, name, category, companyName, leiExpiresAt, status, creatorEmail, createdAt.
- Nom et catégorie viennent de la présentation (absents en
draft,nullif(trim(name), '')côté SQL). projectId=projectId_view, l'id projet réservé à la création (BRI-1549) : toujours présent, c'est la clé d'URL de la fiche Projet, que la rowpropertiesexiste ou non.- Business id vient de
properties(dossiers financés seulement). - Société et LEI viennent de
project_owner_company;leiExpiresAt=leiObtainedAt+ 1 an, dérivé parcomputeLeiExpiresAt(business/), le repo renvoieleiObtainedAt. creatorEmail=better_auth_user.emailducreatedByUserIdviaproject_financing_request_user— le créateur n'est pas forcément le représentant.
Choix¶
- Sans présign S3 : le listing PDP présigne une image par ligne, ne pas le réutiliser.
- Pas d'index dédié : 8 500 lignes, un seq scan suffit.
- Le validateur de row est inliné dans
listForAdministration(projection admin,uuidv7_zodlocal ;ProjectFinancingRequestPgSchema.idrestez.uuid()).