import { CampaignsRepository, CampaignWithSenderName } from "../repositories/campaigns-repository";

interface GetCampaignsByUserUseCaseRequest {
  userId: string;
}

interface GetCampaignsByUserUseCaseResponse {
  campaigns: CampaignWithSenderName[];
}

export class GetCampaignsByUserUseCase {
  constructor(private campaignsRepository: CampaignsRepository) {}

  async execute({
    userId,
  }: GetCampaignsByUserUseCaseRequest): Promise<GetCampaignsByUserUseCaseResponse> {
    const campaigns = await this.campaignsRepository.findByUserId(userId);
    return { campaigns };
  }
}
