import { request } from '../request';

/** 规则模板对象 */
export interface RuleTemplate {
  id: number;
  templateName: string;
  reviewRuleJson: string;
  reviewElementJson: string;
  status: 0 | 1;
  createTime?: string;
  updateTime?: string;
}

/** 规则模板查询参数 */
export interface RuleTemplateParams {
  pageNum: number;
  pageSize: number;
  templateName?: string;
}

/** 规则模板分页结果 */
export interface RuleTemplatePageResult {
  total: number;
  rows: RuleTemplate[];
}

/** 规则模板创建参数 */
export interface RuleTemplateCreateParams {
  templateName: string;
  reviewRuleJson: string;
  reviewElementJson: string;
  status: 0 | 1;
}

/** 规则模板更新参数 */
export interface RuleTemplateUpdateParams extends RuleTemplateCreateParams {
  id: number;
}

/**
 * 获取规则模板列表
 *
 * @param params 查询参数
 */
export function getRuleTemplateList(params: RuleTemplateParams) {
  return request({
    url: '/service/ruleTemplate/list',
    params
  });
}

/**
 * 获取规则模板详情
 *
 * @param id 模板ID
 */
export function getRuleTemplateDetail(id: number) {
  return request({
    url: `/service/ruleTemplate/${id}`
  });
}

/**
 * 创建规则模板
 *
 * @param params 模板参数
 */
export function createRuleTemplate(params: RuleTemplateCreateParams) {
  return request({
    url: '/service/ruleTemplate',
    method: 'post',
    data: params
  });
}

/**
 * 更新规则模板
 *
 * @param params 模板参数（包含id）
 */
export function updateRuleTemplate(params: RuleTemplateUpdateParams) {
  return request({
    url: '/service/ruleTemplate',
    method: 'put',
    data: params
  });
}

/**
 * 删除规则模板
 *
 * @param ids 模板ID字符串，多个ID用逗号分隔
 */
export function deleteRuleTemplate(ids: string) {
  return request({
    url: `/service/ruleTemplate/${ids}`,
    method: 'delete'
  });
}

/**
 * 启用/禁用规则模板
 *
 * @param id 模板ID
 * @param status
 */
export function toggleRuleTemplateStatus(id: number, status: 0 | 1) {
  return request({
    url: `/service/ruleTemplate/${id}/status`,
    method: 'patch',
    data: { status }
  });
}
