diff --git a/docs/90-transversal/inventarios/FRONTEND_INVENTORY.yml b/docs/90-transversal/inventarios/FRONTEND_INVENTORY.yml index c10d495..1b59bc9 100644 --- a/docs/90-transversal/inventarios/FRONTEND_INVENTORY.yml +++ b/docs/90-transversal/inventarios/FRONTEND_INVENTORY.yml @@ -6,23 +6,23 @@ # Version: 1.0.0 # ============================================================================ -version: "1.0.0" +version: "1.1.0" project: "Trading Platform" framework: "React 18 + TypeScript + Vite" styling: "TailwindCSS + shadcn/ui" state_management: "Zustand" -last_updated: "2025-12-05" +last_updated: "2026-01-25" # ============================================================================ # RESUMEN EJECUTIVO # ============================================================================ summary: - total_features: 7 # +1 notifications - total_pages: 14 # +2 (NotificationsPage, settings/notifications) - total_components: 23 # +5 (NotificationBell, Dropdown, Item, List, index) + total_features: 8 # +1 payments + total_pages: 18 # +4 (CheckoutSuccess, CheckoutCancel, Pricing, Billing) + total_components: 29 # +6 payments (PricingCard, SubscriptionCard, WalletCard, UsageProgress, WalletDepositModal, WalletWithdrawModal) total_hooks: 0 - total_stores: 1 # +1 notificationStore - status: "En desarrollo (OQI-001 parcial)" + total_stores: 2 # +1 paymentStore + status: "En desarrollo (OQI-005 al 60%)" # ============================================================================ # ESTRUCTURA DE DIRECTORIOS @@ -366,6 +366,111 @@ features: - getPreferences() - updatePreferences(data) + # -------------------------------------------------------------------------- + # PAYMENTS - Pagos y Stripe + # -------------------------------------------------------------------------- + - name: payments + path: modules/payments/ + epic: OQI-005 + status: implemented + description: "Planes, suscripciones, checkout, wallet" + created: "2026-01-25" + + pages: + - name: Pricing.tsx + route: /pricing + description: "Catalogo de planes de suscripcion" + rf: RF-PAY-001 + + - name: Billing.tsx + route: /billing, /settings/billing + description: "Gestion de suscripcion, metodos de pago, facturas y wallet" + rf: RF-PAY-002 + + - name: CheckoutSuccess.tsx + route: /payments/success + description: "Pagina de confirmacion de pago exitoso" + rf: RF-PAY-003 + + - name: CheckoutCancel.tsx + route: /payments/cancel + description: "Pagina de cancelacion de checkout" + rf: RF-PAY-003 + + components: + - name: PricingCard.tsx + path: components/payments/PricingCard.tsx + purpose: "Tarjeta de plan con features y precio" + rf: RF-PAY-001 + + - name: SubscriptionCard.tsx + path: components/payments/SubscriptionCard.tsx + purpose: "Tarjeta de suscripcion activa" + rf: RF-PAY-002 + + - name: WalletCard.tsx + path: components/payments/WalletCard.tsx + purpose: "Tarjeta de wallet con balance y transacciones" + rf: RF-PAY-004 + + - name: UsageProgress.tsx + path: components/payments/UsageProgress.tsx + purpose: "Barras de progreso de uso de features" + rf: RF-PAY-002 + + - name: WalletDepositModal.tsx + path: components/payments/WalletDepositModal.tsx + purpose: "Modal para depositar fondos al wallet" + rf: RF-PAY-004 + + - name: WalletWithdrawModal.tsx + path: components/payments/WalletWithdrawModal.tsx + purpose: "Modal para retirar fondos del wallet" + rf: RF-PAY-004 + + - name: index.ts + path: components/payments/index.ts + purpose: "Exports de componentes de payments" + + store: + - name: paymentStore.ts + path: stores/paymentStore.ts + purpose: "Estado de pagos y suscripciones con Zustand" + state: + - currentSubscription + - paymentMethods + - invoices + - usageStats + - wallet + - walletTransactions + - loading states + actions: + - fetchCurrentSubscription() + - fetchPaymentMethods() + - fetchInvoices() + - fetchUsageStats() + - fetchWallet() + - cancelSubscription() + - reactivateSubscription() + - setDefaultPaymentMethod() + - removePaymentMethod() + - downloadInvoice() + - openBillingPortal() + + service: + - name: payment.service.ts + path: services/payment.service.ts + purpose: "API client para pagos y Stripe" + methods: + - getSubscription() + - getPaymentMethods() + - getInvoices() + - createCheckoutSession() + - cancelSubscription() + - getWallet() + - depositToWallet() + - withdrawFromWallet() + # ============================================================================ # COMPONENTES COMPARTIDOS # ============================================================================ @@ -438,6 +543,16 @@ routing: component: NotificationsPage - path: /settings/notifications component: NotificationsPage + - path: /pricing + component: Pricing + - path: /billing + component: Billing + - path: /settings/billing + component: Billing + - path: /payments/success + component: CheckoutSuccess + - path: /payments/cancel + component: CheckoutCancel # ============================================================================ # STORES (ZUSTAND) @@ -554,10 +669,11 @@ epic_mapping: status: "Estructura creada" OQI-005: - features: [] - pages_count: 0 - status: "Pendiente" - note: "Paginas de billing en settings" + features: [payments] + pages_count: 4 + components_count: 6 + status: "Implementado (60%)" + note: "Pricing, Billing, CheckoutSuccess, CheckoutCancel, WalletDepositModal, WalletWithdrawModal" OQI-006: features: [] diff --git a/orchestration/inventarios/MASTER_INVENTORY.yml b/orchestration/inventarios/MASTER_INVENTORY.yml index 1b561ec..45cbabb 100644 --- a/orchestration/inventarios/MASTER_INVENTORY.yml +++ b/orchestration/inventarios/MASTER_INVENTORY.yml @@ -17,8 +17,8 @@ resumen_general: total_tablas: 81 # +4 (notifications, user_push_tokens, distribution_history, distribution_runs) total_servicios_backend: 15 # +1 firebase.client total_servicios_python: 4 # ML Engine, Data Service, MT4 Gateway, LLM Agent - total_componentes_frontend: 53 # +5 notification components - total_pages: 29 # +2 notification pages + total_componentes_frontend: 59 # +6 payments (WalletDepositModal, WalletWithdrawModal, PricingCard, SubscriptionCard, WalletCard, UsageProgress) + total_pages: 33 # +4 payments (CheckoutSuccess, CheckoutCancel, Pricing, Billing) total_background_jobs: 1 # Distribution Job total_unit_tests: 2 # notification.service.spec, distribution.job.spec test_coverage: TBD @@ -59,9 +59,10 @@ epicas: - codigo: OQI-005 nombre: Pagos y Stripe sp: 40 - estado: Parcial - progreso: 50% + estado: En Desarrollo + progreso: 60% doc_frontend: true + descripcion: "Pricing, Billing, CheckoutSuccess, CheckoutCancel, WalletDepositModal, WalletWithdrawModal" - codigo: OQI-006 nombre: Senales ML