'use client';

import { Address, Order, User } from '@/domain/entities';
import { RegisterInput } from '@/domain/services/AuthDomainService';
import { container } from '@/application/container';
import { useAuthStore } from '@/infrastructure/persistence/zustand/authStore';

export function useAuth() {
  const user = useAuthStore((s) => s.user);
  const orders = useAuthStore((s) => s.orders);
  const isAuthenticated = useAuthStore((s) => s.isAuthenticated);

  return {
    user,
    orders,
    isAuthenticated,
    login: (email: string, password: string) =>
      container.login.execute(email, password),
    register: (data: RegisterInput) => container.register.execute(data),
    logout: () => container.authRepository.logout(),
    updateProfile: (data: Partial<User>) =>
      container.authRepository.updateProfile(data),
    addOrder: (order: Order) => container.authRepository.addOrder(order),
  };
}