import type { PageParam, PageResult } from '#/packages/effects/request/src';

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

export namespace HrmAttendanceHolidayApi {
  /** 节假日 */
  export interface Holiday {
    id?: number;
    name?: string;
    date?: string;
    type?: number;
    typeName?: string;
    isLegal?: number;
    remark?: string;
    createTime?: string;
  }
}

/** 查询节假日分页列表 */
export function getAttendanceHolidayPage(params: PageParam) {
  return requestClient.get<PageResult<HrmAttendanceHolidayApi.Holiday>>(
    '/hrm/attendance/holiday/page',
    { params },
  );
}

/** 查询节假日详情 */
export function getAttendanceHoliday(id: number) {
  return requestClient.get<HrmAttendanceHolidayApi.Holiday>(
    `/hrm/attendance/holiday/get?id=${id}`,
  );
}

/** 新增节假日 */
export function createAttendanceHoliday(data: HrmAttendanceHolidayApi.Holiday) {
  return requestClient.post('/hrm/attendance/holiday/create', data);
}

/** 更新节假日 */
export function updateAttendanceHoliday(data: HrmAttendanceHolidayApi.Holiday) {
  return requestClient.put('/hrm/attendance/holiday/update', data);
}

/** 删除节假日 */
export function deleteAttendanceHoliday(id: number) {
  return requestClient.delete(`/hrm/attendance/holiday/delete?id=${id}`);
}

/** 导出节假日 Excel */
export function exportAttendanceHoliday(params: any) {
  return requestClient.download('/hrm/attendance/holiday/export-excel', { params });
}