package com.zt.plat.module.base.service.doctemplate.render;

import java.util.Map;

/**
 * 业务数据提供者接口
 * 不同的业务类型实现此接口来提供数据
 *
 * <p>命名约定：{业务类型}DataProvider
 * <p>示例：
 * <ul>
 *   <li>ContractDataProvider (合同数据提供者)</li>
 *   <li>OrderDataProvider (订单数据提供者)</li>
 *   <li>PurchaseOrderDataProvider (采购单数据提供者)</li>
 *   <li>SalesOrderDataProvider (销售单数据提供者)</li>
 * </ul>
 *
 * @author hwc
 */
public interface IBusinessDataProvider {

    /**
     * 获取业务数据
     *
     * @param context    业务上下文（通常是业务ID，如contractId、orderId等）
     * @param fieldNames 需要填充的字段名列表
     * @return 字段值映射表
     */
    Map<String, Object> provideData(Object context, java.util.List<String> fieldNames);
}