package pwc.taxtech.atms.service;

import java.util.List;

import pwc.taxtech.atms.dpo.DimensionValueOrgDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.dimension.DimensinTypeOrgDto;
import pwc.taxtech.atms.dto.dimension.DimensionDto;
import pwc.taxtech.atms.dto.dimension.DimensionValueDto;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.entity.Dimension;

public interface DimensionService {

    List<DimensionDto> getDimensionStatics();

    List<DimensionDto> getAllDimensionList();

    List<DimensionDto> getDimensionList();

    DimensinTypeOrgDto getDimensionById(String id);

    List<Dimension> findByIsActiveTrue();

    List<DimensionValueOrgDto> getAllDimensionOrgList();

    @SuppressWarnings("rawtypes")
    OperationResultDto updateDimension(DimensionDto model);

    List<DimensionValueDto> getDimensionValueList(String dimensionId);

    @SuppressWarnings("rawtypes")
    List<DevTreeDto> getDevDimensionTreeList();

    @SuppressWarnings("rawtypes")
    OperationResultDto addDimension(DimensionDto model);

    @SuppressWarnings("rawtypes")
    OperationResultDto addDimensionValue(DimensionValueDto model);

    @SuppressWarnings("rawtypes")
    OperationResultDto updateDimensionValue(DimensionValueDto model);

    List<DimensionValueOrgDto> getAllDimensionOrgListByOrgId(String orgid);
}