import "server-only";
import { query } from "../connection";

// Grille tarifaire per-seat graduée (chantier pricing per-seat Lot 1, mf_ask
// #128). Source de vérité unique du prix du plan `flex`. Lue en direct via
// `superadmin_ro` (GRANT SELECT) — aucun endpoint backend nécessaire (Option B).
//
// Convention actée côté app :
// - `unit_amount_cents` = prix HT par siège et par mois, en centimes.
// - `max_seats` NULL = tranche supérieure ouverte (26+).
// - Annuel = mensuel × 12 SANS remise, **dérivé en code** (jamais stocké).
export type PricingTierRow = {
  id: number;
  min_seats: number;
  max_seats: number | null; // NULL = pas de borne haute (tranche 26+)
  unit_amount_cents: number; // HT / siège / mois
  currency: string;
};

export async function listPricingTiers(): Promise<PricingTierRow[]> {
  return query<PricingTierRow>(
    `SELECT id, min_seats, max_seats, unit_amount_cents, currency
       FROM pricing_tiers
      ORDER BY min_seats ASC`,
  );
}
