# marcoeferro/estampadero architecture

> Architecture diagram of the GitHub repository marcoeferro/estampadero, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/marcoeferro/estampadero
- Repository: https://github.com/marcoeferro/estampadero

## Overview

El Estampadero es una tienda de indumentaria con administración y un portal para clubes. El recorrido principal va del catálogo y carrito al checkout, cobro y confirmación; los pedidos pagados alimentan la producción y registran participaciones de clubes según sus convenios, que luego pueden liquidarse. El mapa conserva también las funciones documentadas de gestión de diseños, atención y conciliación. Las relaciones de compra y distribución se apoyan en el README; los excerpts de código solo confirman algunas rutas de pago y persistencia, así que no se infieren llamadas internas no muestreadas.

Main entry points: [`src/widgets/admin-shell/ui/AdminShell.tsx`](https://github.com/marcoeferro/estampadero/blob/master/src/widgets/admin-shell/ui/AdminShell.tsx) (Administración), [`src/server/modules/payments`](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/payments) (Pagos), [`src/server/modules/orders`](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/orders) (Pedidos), [`src/server/modules/checkout`](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/checkout) (Procesar compra)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_store["Tienda pública"]
  node_shop["Tienda<br/>[HomeView.tsx]"]
  node_catalog["Catálogo<br/>[CatalogView.tsx]"]
  node_product["Detalle producto"]
end

subgraph group_commerce["Compra y pagos"]
  node_cart["Carrito<br/>[CartView.tsx]"]
  node_checkout["Checkout<br/>[CheckoutView.tsx]"]
  node_checkout_module["Procesar compra"]
  node_payments["Pagos"]
  node_mobbex["Mobbex"]
  node_legacy_payments["Otros proveedores"]
  node_confirmation["Confirmación pedido"]
  node_payment_webhooks["Webhooks pago"]
  node_reconciliation["Conciliación<br/>[route.ts]"]
end

subgraph group_club["Clubes y contenido"]
  node_clubs["Clubes"]
  node_agreements["Convenios"]
  node_designs["Diseños"]
  node_club_portal["Portal clubes<br/>[ClubPortalView.tsx]"]
end

subgraph group_operations["Operación y finanzas"]
  node_orders["Pedidos"]
  node_commissions["Participaciones"]
  node_production["Producción"]
  node_settlements["Liquidaciones"]
  node_admin["Administración<br/>[AdminShell.tsx]"]
  node_customer_care["Atención cliente"]
end

subgraph group_platform["Acceso y datos"]
  node_identity["Identidad y acceso"]
  node_database[("Base de datos<br/>[db.ts]")]
end

node_buyer(("Comprador"))

node_buyer -->|"visita"| node_shop
node_buyer -->|"explora"| node_catalog
node_catalog -->|"selecciona"| node_product
node_product -->|"añade"| node_cart
node_buyer -->|"revisa"| node_cart
node_cart -->|"continúa"| node_checkout
node_checkout -->|"envía compra"| node_checkout_module
node_checkout_module -->|"crea pedido"| node_orders
node_checkout_module -->|"inicia cobro"| node_payments
node_payments -->|"cobra"| node_mobbex
node_payments -.->|"adapta pagos"| node_legacy_payments
node_payment_webhooks -->|"procesa eventos"| node_payments
node_reconciliation -->|"reconcilia"| node_payments
node_payments -->|"confirma estado"| node_confirmation
node_orders -->|"persiste pedidos"| node_database
node_payments -->|"persiste pagos"| node_database
node_buyer -->|"consulta portal"| node_club_portal
node_admin -->|"gestiona clubes"| node_clubs
node_admin -->|"gestiona convenios"| node_agreements
node_admin -->|"revisa diseños"| node_designs
node_admin -->|"gestiona pedidos"| node_orders
node_admin -->|"gestiona producción"| node_production
node_admin -->|"gestiona liquidaciones"| node_settlements
node_admin -->|"atiende reclamos"| node_customer_care
node_agreements -->|"define participaciones"| node_commissions
node_orders -->|"registra participaciones"| node_commissions
node_orders -->|"alimenta producción"| node_production
node_commissions -->|"genera liquidaciones"| node_settlements
node_identity -->|"consulta credenciales"| node_database

click node_shop "https://github.com/marcoeferro/estampadero/blob/master/src/views/home/ui/HomeView.tsx"
click node_catalog "https://github.com/marcoeferro/estampadero/blob/master/src/views/catalog/ui/CatalogView.tsx"
click node_product "https://github.com/marcoeferro/estampadero/blob/master/src/views/product-detail/ui/ProductDetailView.tsx"
click node_cart "https://github.com/marcoeferro/estampadero/blob/master/src/views/cart/ui/CartView.tsx"
click node_checkout "https://github.com/marcoeferro/estampadero/blob/master/src/views/checkout/ui/CheckoutView.tsx"
click node_checkout_module "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/checkout"
click node_payments "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/payments"
click node_legacy_payments "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/payments/infrastructure/providers"
click node_confirmation "https://github.com/marcoeferro/estampadero/blob/master/src/views/order-confirmation/ui/OrderConfirmationView.tsx"
click node_orders "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/orders"
click node_clubs "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/clubs"
click node_agreements "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/agreements"
click node_designs "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/designs"
click node_club_portal "https://github.com/marcoeferro/estampadero/blob/master/src/views/club-portal/ui/ClubPortalView.tsx"
click node_commissions "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/commissions"
click node_production "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/production"
click node_settlements "https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/settlements"
click node_admin "https://github.com/marcoeferro/estampadero/blob/master/src/widgets/admin-shell/ui/AdminShell.tsx"
click node_customer_care "https://github.com/marcoeferro/estampadero/blob/master/src/views/customer-care/ui/CustomerCareView.tsx"
click node_identity "https://github.com/marcoeferro/estampadero/tree/master/src/server/auth"
click node_database "https://github.com/marcoeferro/estampadero/blob/master/src/server/db.ts"
click node_payment_webhooks "https://github.com/marcoeferro/estampadero/tree/master/src/app/api/webhooks"
click node_reconciliation "https://github.com/marcoeferro/estampadero/blob/master/src/app/api/cron/reconcile-payments/route.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_shop,node_catalog,node_product toneBlue
class node_cart,node_checkout,node_checkout_module,node_payments,node_mobbex,node_legacy_payments,node_confirmation,node_payment_webhooks,node_reconciliation toneAmber
class node_clubs,node_agreements,node_designs,node_club_portal toneMint
class node_orders,node_commissions,node_production,node_settlements,node_admin,node_customer_care toneRose
class node_identity,node_database,node_buyer toneIndigo
```

## Components

### Tienda pública

- [Tienda](https://github.com/marcoeferro/estampadero/blob/master/src/views/home/ui/HomeView.tsx): `src/views/home/ui/HomeView.tsx`
- [Catálogo](https://github.com/marcoeferro/estampadero/blob/master/src/views/catalog/ui/CatalogView.tsx): `src/views/catalog/ui/CatalogView.tsx`
- [Detalle producto](https://github.com/marcoeferro/estampadero/blob/master/src/views/product-detail/ui/ProductDetailView.tsx): `src/views/product-detail/ui/ProductDetailView.tsx`

### Compra y pagos

- [Carrito](https://github.com/marcoeferro/estampadero/blob/master/src/views/cart/ui/CartView.tsx): `src/views/cart/ui/CartView.tsx`
- [Checkout](https://github.com/marcoeferro/estampadero/blob/master/src/views/checkout/ui/CheckoutView.tsx): `src/views/checkout/ui/CheckoutView.tsx`
- [Procesar compra](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/checkout): `src/server/modules/checkout`
- [Pagos](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/payments): `src/server/modules/payments`
- **Mobbex**
- [Otros proveedores](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/payments/infrastructure/providers): `src/server/modules/payments/infrastructure/providers`
- [Confirmación pedido](https://github.com/marcoeferro/estampadero/blob/master/src/views/order-confirmation/ui/OrderConfirmationView.tsx): `src/views/order-confirmation/ui/OrderConfirmationView.tsx`
- [Webhooks pago](https://github.com/marcoeferro/estampadero/tree/master/src/app/api/webhooks): `src/app/api/webhooks`
- [Conciliación](https://github.com/marcoeferro/estampadero/blob/master/src/app/api/cron/reconcile-payments/route.ts): `src/app/api/cron/reconcile-payments/route.ts`

### Clubes y contenido

- [Clubes](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/clubs): `src/server/modules/clubs`
- [Convenios](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/agreements): `src/server/modules/agreements`
- [Diseños](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/designs): `src/server/modules/designs`
- [Portal clubes](https://github.com/marcoeferro/estampadero/blob/master/src/views/club-portal/ui/ClubPortalView.tsx): `src/views/club-portal/ui/ClubPortalView.tsx`

### Operación y finanzas

- [Pedidos](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/orders): `src/server/modules/orders`
- [Participaciones](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/commissions): `src/server/modules/commissions`
- [Producción](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/production): `src/server/modules/production`
- [Liquidaciones](https://github.com/marcoeferro/estampadero/tree/master/src/server/modules/settlements): `src/server/modules/settlements`
- [Administración](https://github.com/marcoeferro/estampadero/blob/master/src/widgets/admin-shell/ui/AdminShell.tsx): `src/widgets/admin-shell/ui/AdminShell.tsx`
- [Atención cliente](https://github.com/marcoeferro/estampadero/blob/master/src/views/customer-care/ui/CustomerCareView.tsx): `src/views/customer-care/ui/CustomerCareView.tsx`

### Acceso y datos

- [Identidad y acceso](https://github.com/marcoeferro/estampadero/tree/master/src/server/auth): `src/server/auth`
- [Base de datos](https://github.com/marcoeferro/estampadero/blob/master/src/server/db.ts): `src/server/db.ts`

### Other components

- **Comprador**

## Connections

- Comprador → Tienda: visita
- Comprador → Catálogo: explora
- Catálogo → Detalle producto: selecciona
- Detalle producto → Carrito: añade
- Comprador → Carrito: revisa
- Carrito → Checkout: continúa
- Checkout → Procesar compra: envía compra
- Procesar compra → Pedidos: crea pedido
- Procesar compra → Pagos: inicia cobro
- Pagos → Mobbex: cobra
- Pagos → Otros proveedores: adapta pagos
- Webhooks pago → Pagos: procesa eventos
- Conciliación → Pagos: reconcilia
- Pagos → Confirmación pedido: confirma estado
- Pedidos → Base de datos: persiste pedidos
- Pagos → Base de datos: persiste pagos
- Comprador → Portal clubes: consulta portal
- Administración → Clubes: gestiona clubes
- Administración → Convenios: gestiona convenios
- Administración → Diseños: revisa diseños
- Administración → Pedidos: gestiona pedidos
- Administración → Producción: gestiona producción
- Administración → Liquidaciones: gestiona liquidaciones
- Administración → Atención cliente: atiende reclamos
- Convenios → Participaciones: define participaciones
- Pedidos → Participaciones: registra participaciones
- Pedidos → Producción: alimenta producción
- Participaciones → Liquidaciones: genera liquidaciones
- Identidad y acceso → Base de datos: consulta credenciales
