'use client'

import { createContext, useContext, useEffect, useState, type ReactNode } from 'react'

export interface UserInfo {
  id: number
  nome: string
  email: string
  role: 'gestor' | 'vendedor'
  primeiroNome: string
}

const UserContext = createContext<UserInfo | null>(null)

export function UserProvider({ children }: { children: ReactNode }) {
  const [user, setUser] = useState<UserInfo | null>(null)

  useEffect(() => {
    fetch('/api/auth/me')
      .then(r => r.ok ? r.json() : null)
      .then(data => {
        if (data) setUser({ ...data, primeiroNome: data.nome.split(' ')[0] })
      })
      .catch(() => {})
  }, [])

  return <UserContext.Provider value={user}>{children}</UserContext.Provider>
}

export function useUser(): UserInfo | null {
  return useContext(UserContext)
}
