fix(admin): migration Subscription/BYOK et repli getUsers
Some checks failed
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Test & Build (push) Has been cancelled

La table Subscription était dans le schéma sans migration SQL, ce qui
cassait le rendu Server Components de /admin. Migration idempotente +
fallback getUsers si la jointure échoue encore.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Antigravity
2026-05-17 13:56:02 +00:00
parent 759487cb36
commit 37a88d7e3d
2 changed files with 143 additions and 12 deletions

View File

@@ -23,9 +23,31 @@ async function checkAdmin() {
return session
}
const userListSelect = {
id: true,
name: true,
email: true,
role: true,
createdAt: true,
subscription: {
select: {
tier: true,
status: true,
currentPeriodEnd: true,
},
},
} as const
export async function getUsers() {
await checkAdmin()
try {
return await prisma.user.findMany({
orderBy: { createdAt: 'desc' },
select: userListSelect,
})
} catch (error) {
// Prod DB parfois en retard sur les migrations (ex. table Subscription absente).
console.error('getUsers with subscription failed, fallback without:', error)
const users = await prisma.user.findMany({
orderBy: { createdAt: 'desc' },
select: {
@@ -34,19 +56,9 @@ export async function getUsers() {
email: true,
role: true,
createdAt: true,
subscription: {
select: {
tier: true,
status: true,
currentPeriodEnd: true,
}
}
}
},
})
return users
} catch (error) {
console.error('Failed to fetch users:', error)
throw new Error('Failed to fetch users')
return users.map((u) => ({ ...u, subscription: null }))
}
}