mirror of
https://github.com/R0m1k3/PleinR.git
synced 2026-10-15 19:26:21 +02:00
Ajoute la page Annuaire publique (/annuaire) reliée aux fiches adhérents
Liste des adhérents actifs avec recherche (nom/métier), filtre par commune, filtres catégories (chips + compteurs), tri (A–Z / avec promotions), état vide et CTA d'adhésion — fidèle à la maquette. Chaque carte ouvre la fiche adhérent (/adherents/[id]). La recherche de l'accueil et la nav pointent vers /annuaire (la barre de recherche pré-remplit via ?q=). Nouvelles requêtes annuaire. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwfhYHzC9hQWPDnQ2p53GL
This commit is contained in:
5 files changed
+455
-6
No files matched your search
+32
-1
@@ -1,7 +1,38 @@
|
||||
import { and, count, desc, eq } from "drizzle-orm";
|
||||
import { and, asc, count, desc, eq } from "drizzle-orm";
|
||||
import { db } from "@/db";
|
||||
import { categories, members, promotions } from "@/db/schema";
|
||||
|
||||
export async function getActiveMembersWithCategory() {
|
||||
return db
|
||||
.select({
|
||||
id: members.id,
|
||||
name: members.name,
|
||||
description: members.description,
|
||||
city: members.city,
|
||||
address: members.address,
|
||||
categoryLabel: categories.label,
|
||||
accent: categories.accent,
|
||||
})
|
||||
.from(members)
|
||||
.leftJoin(categories, eq(members.categoryId, categories.id))
|
||||
.where(eq(members.status, "active"))
|
||||
.orderBy(asc(members.name));
|
||||
}
|
||||
|
||||
export async function getAllCategories() {
|
||||
return db
|
||||
.select({ id: categories.id, label: categories.label, accent: categories.accent })
|
||||
.from(categories)
|
||||
.orderBy(asc(categories.sort));
|
||||
}
|
||||
|
||||
export async function getLiveBadgesByMember() {
|
||||
return db
|
||||
.select({ memberId: promotions.memberId, badge: promotions.badge })
|
||||
.from(promotions)
|
||||
.where(eq(promotions.status, "live"));
|
||||
}
|
||||
|
||||
export async function getCategoriesWithCounts(limit = 6) {
|
||||
const rows = await db
|
||||
.select({
|
||||
|
||||
Reference in new issue
Block a user