package com.ym.mec.thirdparty.eseal;

public interface ESealPlugin {

	/**
	 * 创建用户账户(个人)
	 * @param realName 姓名
	 * @param idcard 身份证号码
	 * @param mobile 手机号码
	 * @return 账户唯一标识
	 */
	public String createUserAccount(String realName, String idcard, String mobile);

	/**
	 * 创建用户账户(企业)
	 * @param orgName  机构名称
	 * @param organCode 统一社会信用代码
	 * @return 账户唯一标识
	 */
	public String createOrganAccount(String orgName, String organCode);

	/**
	 * 创建个人印章
	 * @param accountId 账户唯一标识
	 * @return 电子印章数据
	 */
	public String createUserSeal(String accountId);

	/**
	 * 创建企业印章
	 * @param accountId 账户唯一标识
	 * @param hText 生成印章中的横向文内容
	 * @param qText 生成印章中的下弦文内容
	 * @return 电子印章数据
	 */
	public String createOrganSeal(String accountId, String hText, String qText);

	/**
	 * 平台自身PDF摘要签署（印章标识）
	 * @param srcPdfPath 源文件
	 * @param destPdfPath 签名后的目标文件
	 * @return
	 */
	public boolean platformSign(String srcPdfPath, String destPdfPath);

	/**
	 * 企业PDF摘要签署（印章图片）
	 * @param sealData 电子印章数据
	 * @param srcPdfPath 源文件
	 * @param destPdfPath 签名后的目标文件
	 * @return
	 */
	public boolean organSign(String sealData, String srcPdfPath, String destPdfPath);

	/**
	 * 用户签名
	 * @param accountId 账户唯一标识
	 * @param sealData 电子印章数据
	 * @param srcPdfPath 平台签名后的源文件
	 * @param destPdfPath 平台、用户都签名后的文件地址
	 * @return
	 */
	public boolean userSign(String accountId, String sealData, String srcPdfPath, String destPdfPath);
}
