import { profileApi } from '../api';
import { UserProfileDto } from '../types';
import { Colaborador } from '../domain/Colaborador';

export const profileService = {
  /**
   * Obtém o colaborador atualmente autenticado como entidade de domínio.
   * Segue o padrão de Linguagem Ubíqua do DDD.
   */
  obterColaboradorAtual: async (): Promise<Colaborador> => {
    const response = await profileApi.get<UserProfileDto>('/auth/me');
    return Colaborador.criarAPartirDoDto(response.data);
  },

  /**
   * Obtém os dados brutos (DTO) do colaborador autenticado.
   * Usar apenas quando a conversão para entidade de domínio não for necessária.
   */
  obterColaboradorAtualDto: async (): Promise<UserProfileDto> => {
    const response = await profileApi.get<UserProfileDto>('/auth/me');
    return response.data;
  },
};
