/** * Tenant creation service - Simplified implementation */ import { useCallback, useState } from 'react'; import { useRegisterBakery } from '../../../../api'; import { useTenantStore } from '../../../../stores/tenant.store'; import { useOnboardingStore } from '../core/store'; import type { BakeryRegistration, TenantResponse } from '../../../../api'; export const useTenantCreation = () => { const registerBakeryMutation = useRegisterBakery(); const { setCurrentTenant, loadUserTenants } = useTenantStore(); const { setStepData } = useOnboardingStore(); // Simple, direct state management const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const [isSuccess, setIsSuccess] = useState(false); const [tenantData, setTenantData] = useState(null); const createTenant = useCallback(async (bakeryData: BakeryRegistration): Promise => { if (!bakeryData) { setError('Los datos de la panadería son requeridos'); return false; } setIsLoading(true); setError(null); try { // Call API to register bakery const tenantResponse: TenantResponse = await registerBakeryMutation.mutateAsync(bakeryData); // Update tenant store setCurrentTenant(tenantResponse); // Reload user tenants await loadUserTenants(); // Update state setTenantData(tenantResponse); setIsSuccess(true); // Update onboarding data setStepData('setup', { bakery: { ...bakeryData, tenantCreated: true, tenant_id: tenantResponse.id, } as any, }); console.log('✅ Tenant created successfully'); return true; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Error creating tenant'; setError(errorMessage); setIsSuccess(false); return false; } finally { setIsLoading(false); } }, [registerBakeryMutation, setCurrentTenant, loadUserTenants, setStepData]); const clearError = useCallback(() => { setError(null); }, []); const reset = useCallback(() => { setIsLoading(false); setError(null); setIsSuccess(false); setTenantData(null); }, []); return { // State isLoading, error, isSuccess, tenantData, // Actions createTenant, clearError, reset, }; };