- Update BACKEND_INVENTORY.yml with sales module details - Update FRONTEND_INVENTORY.yml with sales portal and components - Update DATABASE_INVENTORY.yml with sales schema - Add TASK-2026-01-24-SAAS-018-SALES-FOUNDATION with METADATA.yml - Update project task index with SAAS-018 entry Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
352 lines
7.3 KiB
YAML
352 lines
7.3 KiB
YAML
---
|
|
# FRONTEND INVENTORY - Template SaaS
|
|
# Version: 3.1.0
|
|
# Ultima actualizacion: 2026-01-24
|
|
# Nota: Sales module (SAAS-018) added
|
|
|
|
metadata:
|
|
proyecto: "template-saas"
|
|
tipo: "FRONTEND"
|
|
version: "3.1.0"
|
|
updated: "2026-01-24"
|
|
framework: "React 18.x + Vite"
|
|
styling: "Tailwind CSS"
|
|
state: "Zustand"
|
|
forms: "React Hook Form + Zod"
|
|
testing: "Vitest + React Testing Library"
|
|
estado: "completado"
|
|
|
|
portals:
|
|
- nombre: "user"
|
|
descripcion: "Portal usuario final (Dashboard)"
|
|
ruta: "/"
|
|
estado: "completado"
|
|
pages:
|
|
- Dashboard
|
|
- Profile
|
|
- Settings
|
|
- Notifications
|
|
- Files (Storage)
|
|
- AI Chat
|
|
components:
|
|
- DashboardLayout
|
|
- Sidebar
|
|
- Header
|
|
- NotificationBell
|
|
- FileUploader
|
|
- AIChatWidget
|
|
|
|
- nombre: "admin"
|
|
descripcion: "Portal admin de tenant"
|
|
ruta: "/admin"
|
|
estado: "completado"
|
|
pages:
|
|
- AdminDashboard
|
|
- TeamManagement
|
|
- Billing
|
|
- AuditLogs
|
|
- FeatureFlags
|
|
- Webhooks
|
|
- Settings
|
|
- WhatsAppSettings
|
|
components:
|
|
- AdminLayout
|
|
- TeamTable
|
|
- InviteModal
|
|
- BillingCard
|
|
- SubscriptionManager
|
|
- AuditLogViewer
|
|
- WebhookManager
|
|
- WhatsAppTestMessage
|
|
|
|
- nombre: "superadmin"
|
|
descripcion: "Portal superadmin"
|
|
ruta: "/superadmin"
|
|
estado: "completado"
|
|
pages:
|
|
- SuperadminDashboard
|
|
- TenantsManagement
|
|
- SystemMetrics
|
|
- PlansManagement
|
|
- GlobalFeatureFlags
|
|
components:
|
|
- SuperadminLayout
|
|
- TenantTable
|
|
- MetricsCharts
|
|
- PlanEditor
|
|
|
|
- nombre: "onboarding"
|
|
descripcion: "Wizard de onboarding 4 pasos"
|
|
ruta: "/onboarding"
|
|
estado: "completado"
|
|
pages:
|
|
- OnboardingWizard
|
|
components:
|
|
- CompanyStep
|
|
- InviteStep
|
|
- PlanStep
|
|
- CompleteStep
|
|
- WizardProgress
|
|
|
|
- nombre: "auth"
|
|
descripcion: "Autenticacion"
|
|
ruta: "/auth"
|
|
estado: "completado"
|
|
pages:
|
|
- Login
|
|
- Register
|
|
- ForgotPassword
|
|
- ResetPassword
|
|
- VerifyEmail
|
|
components:
|
|
- AuthLayout
|
|
- LoginForm
|
|
- RegisterForm
|
|
- OAuthButtons
|
|
|
|
- nombre: "sales"
|
|
descripcion: "Sales Foundation - Leads, Oportunidades, Pipeline"
|
|
ruta: "/sales"
|
|
estado: "completado"
|
|
pages:
|
|
- SalesDashboard (/sales)
|
|
- LeadsList (/sales/leads)
|
|
- LeadDetail (/sales/leads/:id)
|
|
- OpportunitiesPipeline (/sales/opportunities)
|
|
- OpportunityDetail (/sales/opportunities/:id)
|
|
- ActivitiesList (/sales/activities)
|
|
components:
|
|
- SalesDashboard
|
|
- ConversionFunnel
|
|
- LeadsList
|
|
- LeadForm
|
|
- LeadCard
|
|
- PipelineBoard
|
|
- OpportunityCard
|
|
- OpportunityForm
|
|
- ActivityTimeline
|
|
- ActivityForm
|
|
nota: "SAAS-018 - Implementado 2026-01-24"
|
|
|
|
shared:
|
|
components:
|
|
ui:
|
|
- Button
|
|
- Input
|
|
- Select
|
|
- Modal
|
|
- Card
|
|
- Table
|
|
- Tabs
|
|
- Badge
|
|
- Avatar
|
|
- Tooltip
|
|
- Toast
|
|
- Skeleton
|
|
- Spinner
|
|
- Alert
|
|
- Dropdown
|
|
forms:
|
|
- FormField
|
|
- FormError
|
|
- FormLabel
|
|
- FormSelect
|
|
- FormTextarea
|
|
- FormCheckbox
|
|
layout:
|
|
- PageHeader
|
|
- PageContent
|
|
- EmptyState
|
|
- ErrorBoundary
|
|
- LoadingState
|
|
|
|
stores:
|
|
- nombre: "authStore"
|
|
estado: "completado"
|
|
actions:
|
|
- login
|
|
- logout
|
|
- refreshToken
|
|
- updateProfile
|
|
- nombre: "tenantStore"
|
|
estado: "completado"
|
|
actions:
|
|
- fetchTenant
|
|
- updateTenant
|
|
- switchTenant
|
|
- nombre: "subscriptionStore"
|
|
estado: "completado"
|
|
actions:
|
|
- fetchSubscription
|
|
- updatePlan
|
|
- cancelSubscription
|
|
- nombre: "notificationStore"
|
|
estado: "completado"
|
|
actions:
|
|
- fetchNotifications
|
|
- markAsRead
|
|
- subscribe
|
|
- nombre: "featureFlagStore"
|
|
estado: "completado"
|
|
actions:
|
|
- fetchFlags
|
|
- evaluateFlag
|
|
|
|
services:
|
|
- nombre: "api (axios instance)"
|
|
estado: "completado"
|
|
- nombre: "auth.api"
|
|
estado: "completado"
|
|
- nombre: "tenants.api"
|
|
estado: "completado"
|
|
- nombre: "users.api"
|
|
estado: "completado"
|
|
- nombre: "billing.api"
|
|
estado: "completado"
|
|
- nombre: "notifications.api"
|
|
estado: "completado"
|
|
- nombre: "storage.api"
|
|
estado: "completado"
|
|
- nombre: "ai.api"
|
|
estado: "completado"
|
|
- nombre: "webhooks.api"
|
|
estado: "completado"
|
|
- nombre: "audit.api"
|
|
estado: "completado"
|
|
- nombre: "feature-flags.api"
|
|
estado: "completado"
|
|
- nombre: "plans.api"
|
|
estado: "completado"
|
|
- nombre: "onboarding.api"
|
|
estado: "completado"
|
|
- nombre: "whatsapp.api"
|
|
estado: "completado"
|
|
- nombre: "sales/leads.api"
|
|
estado: "completado"
|
|
- nombre: "sales/opportunities.api"
|
|
estado: "completado"
|
|
- nombre: "sales/activities.api"
|
|
estado: "completado"
|
|
- nombre: "sales/pipeline.api"
|
|
estado: "completado"
|
|
- nombre: "sales/dashboard.api"
|
|
estado: "completado"
|
|
|
|
hooks:
|
|
auth:
|
|
- useAuth
|
|
- useCurrentUser
|
|
- usePermissions
|
|
- useRoles
|
|
tenant:
|
|
- useTenant
|
|
- useTenantSettings
|
|
billing:
|
|
- useSubscription
|
|
- usePlans
|
|
- useInvoices
|
|
- useBillingPortal
|
|
notifications:
|
|
- useNotifications
|
|
- usePushNotifications
|
|
- useDevices
|
|
- useWebSocket
|
|
storage:
|
|
- useFiles
|
|
- useUpload
|
|
- useStorageUsage
|
|
ai:
|
|
- useAI
|
|
- useAIChat
|
|
- useAIUsage
|
|
webhooks:
|
|
- useWebhooks
|
|
- useWebhookDeliveries
|
|
audit:
|
|
- useAuditLogs
|
|
- useActivityLogs
|
|
feature_flags:
|
|
- useFeatureFlag
|
|
- useFeatureFlags
|
|
onboarding:
|
|
- useOnboarding
|
|
- useOnboardingStatus
|
|
whatsapp:
|
|
- useWhatsApp
|
|
- useWhatsAppMessages
|
|
sales:
|
|
- useLeads
|
|
- useLead
|
|
- useCreateLead
|
|
- useUpdateLead
|
|
- useDeleteLead
|
|
- useConvertLead
|
|
- useOpportunities
|
|
- useOpportunity
|
|
- useCreateOpportunity
|
|
- useUpdateOpportunity
|
|
- useMoveOpportunity
|
|
- useMarkAsWon
|
|
- useMarkAsLost
|
|
- usePipeline
|
|
- usePipelineStages
|
|
- useActivities
|
|
- useCreateActivity
|
|
- useCompleteActivity
|
|
- useSalesSummary
|
|
- useForecast
|
|
forms:
|
|
- useForm
|
|
- useFormField
|
|
ui:
|
|
- useModal
|
|
- useToast
|
|
- useDebounce
|
|
- useClickOutside
|
|
- useMediaQuery
|
|
|
|
resumen:
|
|
total_pages: 22
|
|
total_components: 88
|
|
total_stores: 5
|
|
total_hooks: 96
|
|
total_api_services: 19
|
|
total_tests: 0
|
|
tests_pendientes: "Vitest setup pendiente"
|
|
|
|
planificado:
|
|
pages_actuales: 22
|
|
pages_objetivo: 22
|
|
components_actuales: 88
|
|
components_objetivo: 90
|
|
hooks_actuales: 96
|
|
hooks_objetivo: 96
|
|
nota: "Sales module (SAAS-018) added 2026-01-24"
|
|
|
|
dependencias_npm:
|
|
core:
|
|
- "react@18.x"
|
|
- "react-dom@18.x"
|
|
- "react-router-dom@6.x"
|
|
- "vite"
|
|
state:
|
|
- "zustand"
|
|
- "@tanstack/react-query"
|
|
forms:
|
|
- "react-hook-form"
|
|
- "zod"
|
|
- "@hookform/resolvers"
|
|
styling:
|
|
- "tailwindcss"
|
|
- "@headlessui/react"
|
|
- "@heroicons/react"
|
|
utils:
|
|
- "axios"
|
|
- "date-fns"
|
|
- "clsx"
|
|
notifications:
|
|
- "socket.io-client"
|
|
|
|
ultima_actualizacion: "2026-01-24"
|
|
actualizado_por: "Claude Opus 4.5 (SAAS-018 Sales Foundation)"
|