import api from './client';
import type { ActivityItem, CommissionData, DashboardStats, Organization, PaginatedResponse, PartnerProfile } from '../types';

export const partnerApi = {
  getOverview: async (): Promise<DashboardStats> => {
    const { data } = await api.get<DashboardStats>('/api/partner/overview');
    return data;
  },

  getProfile: async (): Promise<PartnerProfile> => {
    const { data } = await api.get<{ partner: PartnerProfile }>('/api/partner/me');
    return data.partner;
  },

  getOrganizations: async (): Promise<PaginatedResponse<Organization>> => {
    const { data } = await api.get<PaginatedResponse<Organization>>('/api/partner/organizations');
    return data;
  },

  getOrganizationActivity: async (orgId: number): Promise<{
    organization_id: number;
    organization_name: string;
    activities: ActivityItem[];
    total: number;
  }> => {
    const { data } = await api.get(`/api/partner/organizations/${orgId}/activity`);
    return data;
  },

  getCommissions: async (): Promise<CommissionData> => {
    const { data } = await api.get<CommissionData>('/api/partner/commissions');
    return data;
  },
};