import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace MesProEmergencyPlanApi {
  /** 应急处置预案 */
  export interface EmergencyPlan {
    id?: number;
    code?: string; // 预案编码
    name?: string; // 预案名称
    planType?: number; // 预案类型：1停电 2设备故障 3火灾 4自然灾害 5其他
    content?: string; // 处置内容
    orgUnit?: string; // 责任单位
    status?: number; // 状态：0草稿 10已发布
    remark?: string; // 备注
    createTime?: string;
  }
}

/** 创建应急处置预案 */
export function createPlan(data: MesProEmergencyPlanApi.EmergencyPlan) {
  return requestClient.post('/mes/pro/emergency-plan/create', data);
}

/** 更新应急处置预案 */
export function updatePlan(data: MesProEmergencyPlanApi.EmergencyPlan) {
  return requestClient.put('/mes/pro/emergency-plan/update', data);
}

/** 删除应急处置预案 */
export function deletePlan(ids: number[]) {
  return requestClient.delete('/mes/pro/emergency-plan/delete', { params: { ids: ids.join(',') } });
}

/** 获取应急处置预案 */
export function getPlan(id: number) {
  return requestClient.get<MesProEmergencyPlanApi.EmergencyPlan>(
    `/mes/pro/emergency-plan/get?id=${id}`,
  );
}

/** 获取应急处置预案分页 */
export function getPlanPage(params: PageParam) {
  return requestClient.get<PageResult<MesProEmergencyPlanApi.EmergencyPlan>>(
    '/mes/pro/emergency-plan/page',
    { params },
  );
}

/** 发布应急处置预案 */
export function publishPlan(id: number) {
  return requestClient.put(`/mes/pro/emergency-plan/publish?id=${id}`);
}
