using salesbook.Shared.Core.Dto;
using salesbook.Shared.Core.Entity;

namespace salesbook.Shared.Core.Interface;

public interface IIntegryApiService
{
    Task<List<StbActivity>?> RetrieveActivity(string? dateFilter = null);
    Task<List<JtbComt>?> RetrieveAllCommesse(string? dateFilter = null);
    Task<TaskSyncResponseDTO> RetrieveAnagClie(string? dateFilter = null);
    Task<TaskSyncResponseDTO> RetrieveProspect(string? dateFilter = null);
    Task<SettingsResponseDTO> RetrieveSettings();

    Task DeleteActivity(string activityId);

    Task<List<StbActivity>?> SaveActivity(ActivityDTO activity);
    Task<CRMCreateContactResponseDTO?> SaveContact(CRMCreateContactRequestDTO request);
    Task<CheckVatResponseDTO> CheckVat(CheckVatRequestDTO request);
    Task<CRMTransferProspectResponseDTO> TransferProspect(CRMTransferProspectRequestDTO request);

    Task UploadFile(string id, byte[] file, string fileName);
    Task<List<ActivityFileDto>> GetActivityFile(string activityId);
    Task<Stream> DownloadFile(string activityId, string fileName);

    //Position
    Task<PositionDTO> SavePosition(PositionDTO position);
    Task<PositionDTO> RetrievePosition(string id);

    //Google
    Task<List<IndirizzoDTO>?> Geocode(string address);
    Task<List<AutoCompleteAddressDTO>?> AutoCompleteAddress(string address, string language, string uuid);
    Task<IndirizzoDTO?> PlaceDetails(string placeId, string uuid);
}