package vn.azteam.tpf.service;

import vn.azteam.tpf.domain.TBCodeStatusEnum;
import vn.azteam.tpf.service.dto.TBCodeDTO;
import vn.azteam.tpf.service.dto.TBCodeUpdateDTO;
import vn.azteam.tpf.service.dto.TBCropDTO;

import java.util.List;
import java.util.Optional;

/**
 * Service Interface for managing TBCode.
 */
public interface TBCodeService {
    TBCodeDTO save(TBCodeDTO tBCodeDTO);

    List<TBCodeDTO> saveAll(List<TBCodeDTO> tBCodeDTOs);

    Optional<TBCodeDTO> findOne(Long id);

    Optional<TBCodeDTO> updateStatusTBCode(TBCodeDTO tBCodeDTO);

//    /**
//     * Update crop's PIC
//     * @param cropPersonInChargeDTO
//     * @return the persisted entity
//     */
//    Optional<TBCropDTO> updateCropPersonInCharge(CropPersonInChargeDTO cropPersonInChargeDTO);
//
//    /**
//     * Get all the tBCrops.
//     *
//     * @param pageable the pagination information
//     * @return the list of entities
//     */
//    Page<TBCropDTO> findAll(Pageable pageable);
//
//    /**
//     * Get all the TBCrop with eager load of many-to-many relationships.
//     *
//     * @return the list of entities
//     */
//    Page<TBCropDTO> findAllWithEagerRelationships(Pageable pageable);
//
//    /**
//     * Get the "id" tBCrop.
//     *
//     * @param id the id of the entity
//     * @return the entity
//     */
//    Optional<TBCropDTO> findOne(Long id);
//
//    /**
//     * Delete the "id" tBCrop.
//     *
//     * @param id the id of the entity
//     */
//    void delete(Long id);
//
//    /**
//     * Search for the tBCrop corresponding to the query.
//     *
//     * @param query the query of the search
//     *
//     * @param pageable the pagination information
//     * @return the list of entities
//     */
//    Page<TBCropDTO> search(String query, Pageable pageable);
//
//    /**
//     * Search for the tBCrop corresponding to the query, areaId or netHouseId.
//     *
//     * @param query the query of the search
//     * @param areaId the areaId of the search
//     * @param netHouseId the netHouseId of the search
//     *
//     * @param pageable the pagination information
//     * @return the list of entities
//     */
//    Page<TBCropDTO> searchCrop(String query, Long areaId, Long netHouseId, Pageable pageable);
//
//    List<TBCustomerHasCropTypeDTO> getAllCustomerHasCropTypeByCustomerAndCropType(Long customerId, Long cropTypeId);
//
//    List<Long> getListActivityTypeIdByByCustomerAndCropType(Long customerId, Long cropTypeId);
//
//    List<String> getListActivityTypeNameByByCustomerAndCropType(Long customerId, Long cropTypeId);
//
//    List<Long> getAllCropIdByCustomer(Long customerId);
}
