import api from './client';
import type { CompanyRole, TeamMember } from '../types';

export interface TeamResponse {
  items: TeamMember[];
  total: number;
}

export const teamApi = {
  getTeam: async (): Promise<TeamResponse> => {
    const { data } = await api.get<TeamResponse>('/api/partner/team');
    return data;
  },

  addMember: async (member: { email: string; name?: string; role: CompanyRole }): Promise<{ member: TeamMember }> => {
    const { data } = await api.post<{ member: TeamMember }>('/api/partner/team', member);
    return data;
  },

  updateRole: async (userId: number, role: CompanyRole): Promise<{ member: { id: number; role: CompanyRole } }> => {
    const { data } = await api.put<{ member: { id: number; role: CompanyRole } }>(`/api/partner/team/${userId}`, { role });
    return data;
  },

  removeMember: async (userId: number): Promise<{ success: boolean; message: string }> => {
    const { data } = await api.delete<{ success: boolean; message: string }>(`/api/partner/team/${userId}`);
    return data;
  },
};
