package com.viettel.campaign.service;

import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.web.dto.CustomerContactDTO;
import com.viettel.campaign.web.dto.CustomerDTO;
import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO;
import com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO;

public interface CustomerService {

    ResultDTO getAllCustomer(int page, int pageSize, String sort, long customerListId, long companySiteId);

    ResultDTO getCustomerId(Long customerId);

    ResultDTO searchAllCustomer(int page, int pageSize, String sort, long customerListId, long companySiteId, String name, String mobileNumber, String email);

    ResultDTO createCustomer(CustomerDTO customerDTO);

    ResultDTO deleteCustomer(CustomerRequestDTO customerRequestDTO);

    ResultDTO deleteIds(CustomerRequestDTO customerRequestDTO);

    // ------------ customer list ------------ //

    ResultDTO getAllCustomerList(int page, int pageSize, String sort, Long companySiteId);

    ResultDTO createCustomerList(CustomerListDTO customerListDTO);

    ResultDTO updateCustomerList(CustomerListDTO customerListDTO);

    ResultDTO deleteCustomerList(CustomerListDTO customerListDTO);

    ResultDTO deleteCustomerListIds(CustomerRequestDTO customerRequestDTO);

    ResultDTO searchCustomerList(SearchCustomerRequestDTO searchCustomerRequestDTO);

    CustomerList getLatestCreated();

    // ------------ customer contact ------------ //

    ResultDTO getCustomerContact(CustomerContactDTO customer);
    // danh sach khach hang cua chien dich //

    ResultDTO searchCustomerListInfoFromCustomerList(int page, int pageSize, String sort, Long campaignId, Long companySiteId);


    // ------------ customer  ------------ //

    ResultDTO getCustomerRecall(Long campaignId, Long customerId);


}
