package jnpf.franchisee.service;

import jnpf.model.franchisee.req.FranchiseeCustomFieldConfigReq;
import jnpf.model.franchisee.vo.FranchiseeCustomFieldConfigVO;

import java.util.List;

/**
 * 加盟商自定义字段配置服务
 */
public interface FranchiseeCustomFieldConfigService {

    /**
     * 新增自定义字段配置
     *
     * @param req 请求参数
     * @return 配置key
     */
    String add(FranchiseeCustomFieldConfigReq req);

    /**
     * 更新自定义字段配置
     *
     * @param req 请求参数
     * @return 配置key
     */
    String update(FranchiseeCustomFieldConfigReq req);

    /**
     * 查询所有自定义字段配置
     *
     * @return 配置列表
     */
    List<FranchiseeCustomFieldConfigVO> queryList();

    /**
     * 查询自定义字段配置详情
     *
     * @return 配置
     */
    FranchiseeCustomFieldConfigVO query(String key);

    /**
     * 删除自定义字段配置
     *
     * @param key 配置key
     */
    void delete(String key);

    /**
     * 调整自定义字段排序
     *
     * @param key 按目标顺序传入的字段key列表
     */
    void adjustSort(List<String> key);

    /**
     * 查询自定义名称。
     *
     * @return 自定义名称
     */
    String queryCustomName();

    /**
     * 更新自定义名称。
     *
     * @param customName 自定义名称
     * @return 更新后的自定义名称
     */
    String updateCustomName(String customName);
}
