package shop.alien.lawyer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.result.R;
import shop.alien.entity.store.LawyerLegalProblemScenario;

/**
 * 法律问题场景 服务类
 *
 * @author system
 * @since 2025-01-XX
 */
public interface LawyerLegalProblemScenarioService extends IService<LawyerLegalProblemScenario> {

    /**
     * 新增法律问题场景
     *
     * @param lawyerLegalProblemScenario 法律问题场景
     * @return R<LawyerLegalProblemScenar>
     */
    R<LawyerLegalProblemScenario> addLawyerLegalProblemScenario(LawyerLegalProblemScenario lawyerLegalProblemScenario);

    /**
     * 编辑法律问题场景
     *
     * @param lawyerLegalProblemScenario 法律问题场景
     * @return R<LawyerLegalProblemScenar>
     */
    R<LawyerLegalProblemScenario> editLawyerLegalProblemScenario(LawyerLegalProblemScenario lawyerLegalProblemScenario);

    /**
     * 删除法律问题场景
     *
     * @param id 主键
     * @return R<Boolean>
     */
    R<Boolean> deleteLawyerLegalProblemScenario(Integer id);

    /**
     * 根据一级场景主键获取其下所有分类（包括二级和三级分类的树形结构）
     *
     * @param id 一级场景主键
     * @return R<LawyerLegalProblemScenario> 返回一级场景及其完整的树形结构（一级场景的children包含所有二级分类，每个二级分类的children包含其下的三级分类）
     */
    R<LawyerLegalProblemScenario> getCategoryTreeByFirstLevelId(Integer id);

    /**
     * 设置法律场景启用/禁用状态
     *
     * @param id 场景ID
     * @param status 状态，0:禁用，1:启用
     * @return R<Boolean> 操作结果
     */
    R<Boolean> setStatus(Integer id, Integer status);
}

