package com.brilliance.isc.common.codetable.service;

import com.brilliance.isc.bo.Stb;
import com.brilliance.isc.vo.manager.DicVo;
import com.brilliance.mda.runtime.mda.CodetableItem;

import java.util.List;

public interface CodetableService {


	// 新增、修改码表时，均会同时操作两条数据，分别为EN、CN
	String saveDicInfo(DicVo dicVo);

	// 删除码表时，均会同时操作两条数据，分别为EN、CN
	String deleteDicInfo(DicVo dicVo);

	// 查询码表时，会根据请求参数中的UIL字段查询，如果UIL为空，默认查询EN
	DicVo getDicInfo(DicVo dicVo);

	// 返回 stb 列表
	List<DicVo> listDicInfo(DicVo dicVo);

	// 根据 tbl 获取 value-label 列表,默认语种为 EN
	List<CodetableItem> selectList(String tbl);
	List<CodetableItem> selectList(String tbl, String lang);

	// 根据 tbl 获取 value 列表,默认语种为 EN
	List<String> getTblKeyList(String tbl);

	List<String> getTblKeyListBySrtAsc(String tbl);

	List<String> getTblKeyList(String tbl, String lang);

	// 根据 label 获取 value,默认语种为 EN
	String getTblKey(String label, String tbl);
	String getTblKey(String label, String tbl,String lang);

	// 根据 value 获取 label,默认语种为 EN
	String getTblLabel(String value, String tbl);
	String getTblLabel(String value, String tbl, String lang);

	// 根据 value 获取 label,默认语种为 EN (不使用缓存)
	String getTblLabelNoUseCache(String value, String tbl);
	String getTblLabelNoUseCache(String value, String tbl, String lang);

	List<Stb> getStbFromDb(Stb stb);
}
