import request from "@/api/request.js";

// 基本信息-根据法案ID获取法案信息
/**
 * @param {id} 
 */
export function getBillInfo(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/info/${params.id}`,
        params,
    })
}

// 提出人-根据动议ID获取对应的提出人信息
/**
 * @param {billId} 
 * @header token
 */
export function getBillPerson(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/person/${params.billId}`,
        params,
    })
}

// 法案进程、相关事件（最新进展）-根据法案ID获取事件信息
/**
 * @param {id} 
 * @header token
 */
export function getBillEvent(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/actionContent/${params.id}`,
        params,
    })
}

// 法案进程（前期进展）-根据法案ID获取动议流程
/**
 * @param {id} 
 * @header token
 */
export function getBillDyqk(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/dyqk/${params.id}`,
        params,
    })
}

// 立法背景-根据法案ID获取背景内容
/**
 * @param {id,cRelated,currentPage,pageSize} 
 * @header token
 */
export function getBillBackground(params, config = {}) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/background/${params.id}`,
        params,
        signal: config.signal
    })
}
// 相关事件-根据法案ID获取相关事件信息
/**
 * @param {id} 
 * @header token
 */
export function getBillInfoEvent(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/event/${params.id}`,
        params,
    })
}

// 议员相关性-根据法案ID获取议员分析信息（现在只包括名称 支持 反对，没有标签和事件动态）
/**
 * @param {id, isOppose} 
 * @header token
 */
export function getBillPersonAnalyze(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/personAnalyze/${params.id}`,
        params,
    })
}

// 议员相关性分析领域人物动态-根据法案ID获取议员分析领域人物动态
/**
 * @param {id, isOppose,areaId} 
 * @header token
 */
export function getBillPersonAnalyzeDy(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/personAnalyze/news/${params.id}/${params.areaId}`,
        params,
    })
}

// 主要条款-根据法案ID获取原文id列表
/**
 * @param {id} 
 * @header token
 */
export function getBillContentId(params, config = {}) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/contentId/${params.id}`,
        params,
        signal: config.signal
    })
}

// 主要条款-根据原文ID获取条款内容
/**
 * @param {billId,id,cRelated,currentPage,pageSize,domainNameList,measuresNameList,content} 
 * @header token
 */
export function getBillContentTk(params, config = {}) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/content/tk/${params.billId}/${params.id}`,
        params,
        signal: config.signal
    })
}

// 限制方式-根据法案原文ID获取限制方式列表
/**
 * @param {billId,versionId,cRelated} 
 * @header token
 */
export function getBillContentXzfs(params, config = {}) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/content/xzfs/${params.billId}/${params.versionId}`,
        params,
        signal: config.signal
    })
}

// 涉及行业-根据法案原文ID获取行业领域列表
/**
 * @param {billId,versionId,cRelated} 
 * @header token
 */
export function getBillHyly(params, config = {}) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/content/hyly/${params.billId}/${params.versionId}`,
        params,
        signal: config.signal
    })
}

// 根据法案ID获取法案全局信息
/**
 * @param {id} 
 * @header token
 */
export function getBillInfoGlobal(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/summary/${params.id}`,
        params,
    })
}

// 获取流程概要-根据法案ID获取动议流程概要
/**
 * @param {id} 
 * @header token
 */
export function getBillDyqkSummary(params) {
    return request({
        method: 'GET',
        url: `/api/billDeepDive/processSummary/${params.id}`,
        params,
    })
}

// 获取法案全文-根据法案ID获取法案全文
/**
 * @param {id} 
 * @header token
 */
export function getBillFullText(params) {
    return request({
        method: 'GET',
        url: `/api/billInfoBean/content/${params.id}`,
        params,
    })
}

// 条款对比-根据两版版本与筛选条件获取配对条款列表
/**
 * @param {billId,oldVersionId,newVersionId,diffType,cRelated,keyword}
 * @header token
 * @returns { list: Array<{ oldTerm: object|null, newTerm: object|null }> }
 */
export function getBillTermsCompare(params) {
    return request({
        method: "GET",
        url: "/api/billInfoBean/content/compare",
        params,
    });
}

// 版本对比-根据两版版本与筛选条件获取条款列表（分页）
/**
 * @param {billId,content,currentPage,currentVersion,isCn,originalVersion,pageSize,status}
 * @header token
 */
export function getBillVersionCompare(params, config = {}) {
    return request({
        method: "GET",
        url: "/api/billInfoBean/versionCompare",
        params,
        signal: config.signal,
    });
}

// 版本对比-根据筛选条件获取变更统计
/**
 * @param {billId,content,currentVersion,isCn,originalVersion}
 * @header token
 */
export function getBillVersionCompareStatistics(params, config = {}) {
    return request({
        method: "GET",
        url: "/api/billInfoBean/versionCompareStatistics",
        params,
        signal: config.signal,
    });
}
