尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Mapucoin — plataforma turística de Chile con IA: cápsulas, gastronomía, mapa y partners. Next.js + Grok + Supabase + Stripe.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Plataforma turística de Chile: el viajero indica presupuesto y lugar, Grok arma un itinerario con cápsulas tecnológicas, gastronomía local y actividades, sobre un mapa interactivo. Partners se inscriben y Stripe cobra.
La App (PWA instalable, misma infraestructura que Kaenz / Salvazion) vive en /app: cuenta, mapa, cápsulas, viaje con Grok y gastronomía. Entrar en /login.
Logo Mapucoin)| Ruta | Qué hace |
|---|---|
/ | Hero + planificador presupuesto/destino |
/planificar | Itinerario Grok + chat concierge |
/mapa | Mapa de destinos y cápsulas |
/destinos /capsulas /gastronomia /actividades | Catálogo |
/partners | Alta de partners |
/partners/onboard | Stripe Connect Express (CL) |
/reserva | Checkout Stripe (CLP) |
/admin/partners | Admin (secret). No está en el menú |
/login /signup | Cuenta (correo, Google) |
/app | App PWA — Explorar |
/app/capsulas | Cápsulas y reserva Stripe |
/app/viaje | Itinerario Grok |
/app/mesa | Gastronomía y actividades |
/app/cuenta | Perfil y reservas |
Copia .env.example a .env.local:
XAI_API_KEY=
NEXT_PUBLIC_APP_URL=https://mapucoin.com
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
AUTH_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
MAPUCOIN_ADMIN_SECRET=
MAPUCOIN_PLATFORM_FEE_BPS=1200
Mapucoin comparte el proyecto Supabase de Kaenz (mqkyzkrpoinbvclxurfg). Las reservas van a bookings, el perfil a profiles (roles client / owner) y los partners a applications. supabase/schema.sql documenta el modelo propio si se separa el proyecto.
Google entra por el provider ya activo en ese proyecto Supabase (mismo cliente Cloud que Kaenz). Guía: docs/auth-google.md.
Sin Supabase, login/signup siguen funcionando en local (cookie de sesión). Sin XAI_API_KEY, el planificador usa el itinerario de catálogo. Sin Stripe, la reserva muestra error hasta configurar la clave.
app.mapucoin.com redirige a mapucoin.com/app. La App exige sesión.
Webhook: https://mapucoin.com/api/stripe/webhook
Eventos: checkout.session.completed, checkout.session.async_payment_succeeded, account.updated. Moneda CLP (sin decimales).
Detalle y fallback US→CL: docs/stripe-connect.md.
GET /api/partners/approved — pins públicos (slug, business, city, lat, lng, price_from_clp, offer_summary, landscape). Sin email/teléfono/Stripe IDs.POST /api/partners/approve y POST /api/partners/reject — header Authorization: Bearer $MAPUCOIN_ADMIN_SECRET (o x-admin-secret). Pasa pending → approved con geo/listing, o rejected.GET /api/partners?status=pending — listado admin (PII). No es público.POST /api/partners/connect — Express country=CL + Account Link. Partner: mismo correo de la postulación. Admin: Bearer + { "id" }./api/checkout — si el partner de la cápsula está Connect-ready (charges_enabled y payouts_enabled): payment_intent_data.application_fee_amount (12%) + transfer_data.destination. Si no, o si Stripe rechaza el destination charge: guest Checkout en la plataforma y payout_mode=manual con fee contabilizado.En el proyecto Supabase compartido con Kaenz (profiles.id es uuid → auth.users), corre supabase/p2.sql (no recasts de profiles.id). schema.sql completo también es seguro ahora. Si partners aún no existe, P2 usa applications (solo filas Mapucoin).
MAPUCOIN_ADMIN_SECRET es el header de approve/reject. Si falta, se acepta AUTH_SECRET. No hay secret por defecto: sin esas variables el admin responde 401. /api/health solo dice admin: true|false, nunca el valor.
Admin UI (sin curl): https://mapucoin.com/admin/partners — no está en la navegación. Pega el secret, lista pending y aprueba/rechaza. Coords: elige un destino del catálogo (Atacama, etc.), no inventes.
sk_test_ / whsec_ en Vercel o .env.local.MAPUCOIN_ADMIN_SECRET y MAPUCOIN_PLATFORM_FEE_BPS=1200 en el entorno./#partners (no inventar filas a mano)./admin/partners con el secret, o GET /api/partners?status=pending con Bearer → copia id.id real y coords de un destino curado, no un partner ficticio):curl -sS -X POST https://mapucoin.com/api/partners/approve \
-H "Authorization: Bearer $MAPUCOIN_ADMIN_SECRET" \
-H "Content-Type: application/json" \
-d '{"id":"<partner_id>","lat":-22.9087,"lng":-68.1997,"price_from_clp":165000,"offer_summary":"Techo de vidrio para la Vía Láctea. Climatización y Starlink.","landscape":"desierto","slug":"capsula-atacama-star"}'
GET /api/partners/approved y /#mapa filtro Partners (o Ambos). Pin extra solo si el slug no choca con el catálogo; si coincide, el pin curado se queda y el checkout igual enlaza al partner./partners/onboard con el correo de esa postulación. Completa Express con datos de test Connect.account.updated en el webhook y charges_enabled / payouts_enabled en GET /api/partners?status=approved.https://mapucoin.com/reserva?capsula=capsula-atacama-star (u otro slug curado). Nombre + correo, CTA Reservar / Pagar, Pago seguro con Stripe. Tarjeta test 4242…. Success: /reserva/exito. Cancel: vuelve a la cápsula. En el PaymentIntent: application_fee_amount = 12% CLP y transfer_data.destination si Connect-ready; si no, cargo plataforma y booking payout_mode=manual.POST /api/partners/connect responde blocked: true, deja el partner aprobado (el pin sigue) y usa el accounting manual. No fuerces destination charges.El dominio ya está añadido al proyecto Vercel mapucoin. Hoy el DNS sigue en Canva (ns*.systemdns.com → 103.169.142.0). Para que https://mapucoin.com sirva esta app, en el DNS del registrador (Canva / systemdns):
| Tipo | Nombre | Valor |
|---|---|---|
| A | @ | 216.198.79.1 |
| A | @ | 64.29.17.1 |
| CNAME | www | d73ca93feac97dc3.vercel-dns-017.com |
O cambia los nameservers a ns1.vercel-dns.com y ns2.vercel-dns.com.
Hasta que el DNS propague, la app vive en https://mapucoin.vercel.app.
npm install
npm run dev