import type {
  HealthExecutive,
  HealthClientsResponse,
  HealthClientProfile,
  HealthConfig,
  UpdateHealthConfigPayload,
  HealthPeriod,
} from "@/domain/entities/health";
import type { PaginationQueryParams } from "@/shared/types";

export interface HealthPeriodParams {
  period?: HealthPeriod;
  from?: string;
  to?: string;
}

export interface HealthRepository {
  getExecutive(params?: HealthPeriodParams): Promise<HealthExecutive>;
  getClients(params: PaginationQueryParams): Promise<HealthClientsResponse>;
  getClientProfile(companyUserId: number, params?: HealthPeriodParams): Promise<HealthClientProfile>;
  getConfig(): Promise<HealthConfig>;
  updateConfig(payload: UpdateHealthConfigPayload): Promise<HealthConfig>;
  resetConfig(): Promise<HealthConfig>;
}
