Files
parenthese/backend/src/lib/sibling-order.ts
T
IliesAllaliandClaude Opus 5.5 cc01059c47 Prisma 7 : pilote pg, client généré, prisma.config.ts (#164)
* Prisma 7 : client généré dans src/generated, pilote pg, prisma.config.ts

- générateur prisma-client (ESM, extension .js), compilé dans dist : plus de node_modules/.prisma à copier dans les images
- @prisma/adapter-pg, délai de connexion de 5 s comme le moteur de Prisma 6
- prisma.config.ts : adresse de la base et .env pour le CLI, sans dépendre de prisma/config à l'exécution (CLI à part dans les images)
- CI : migrate diff --from-config-datasource --to-schema
- deploy.sh : arrêt avant installation si Node est trop vieux pour Prisma 7
- remplace les PR Dependabot #135 et #137

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Prisma 7 : import du client généré dans token-revocation (#163)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:58:42 +01:00

15 lines
773 B
TypeScript

import type { Prisma, PrismaClient } from '../generated/prisma/client.js'
type LinkReader = Pick<PrismaClient, 'parentChildLink'> | Pick<Prisma.TransactionClient, 'parentChildLink'>
// Ordre d'un nouvel enfant : après ses frères et sœurs, pour qu'une fratrie déjà réordonnée
// ne voie pas le dernier arrivé passer devant (le placement trie les enfants sur displayOrder).
export async function nextSiblingOrder(db: LinkReader, treeId: string, parentPersonId: string): Promise<number> {
const last = await db.parentChildLink.findFirst({
where: { treeId, parentPersonId, deletedAt: null },
orderBy: { displayOrder: 'desc' },
select: { displayOrder: true },
})
return Number.isInteger(last?.displayOrder) ? (last!.displayOrder as number) + 1 : 1
}