/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JZMCtrlTrankInfo
*	ソースファイル名：JZMCtrlTrankInfo.java
*	作成者			：FJ）藤本
*	日付			：2016年06月01日
*＜機能概要＞
*	TRANKシステム SOAP連携（抽象）コマンド発行部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v26.00.00	2016/06/01	FJ）藤本	【ANK-2687-00-00】プレミアムサポート施策
*	v35.00.00	2017/11/21	FJ)柳		【ANK-3336-01-00】GH端末申込画面のチケット利用メニュー表示制御対応
*	v66.00.00	2023/02/17	FJ) 松永	【ANK-4307-00-00】【eo定期】プレミアムクラブリニューアル対応
*				2023/05/18	FJ) 松永	【IT1-2023-0000016】API標準部品を使用した実装に変更
***********************************************************************/
package eo.ejb.common;

import java.util.Map;

/**
 * TRANK連携独自処理部品クラスです。
 * @author FJ
 */
public abstract class JZMCtrlTrankInfo
{
	/**
	 * 1:TRANKシステム
	 */
	private static final String TRANK_SYSTEM = "1";

	/**
	 * 2:スタブ
	 */
	private static final String TRANK_STUB = "2";
	
	/**
	 * リクエストＩＤ
	 */
	public static final String REQUESTID = "requestID";

	/**
	 * サービスＩＤ
	 */
	public static final String SERVICEID = "serviceID";
	
	/**
	 * 依頼元システム区分
	 */
	public static final String CHANNEL = "channel";
	
	/**
	 * 画面ＩＤ
	 */
	public static final String VIEWID = "viewID";
	
	/**
	 * オペレーターID
	 */
	public static final String OPERATORID = "operatorID";
	
	/**
	 * 依頼元IPアドレス
	 */
	public static final String IPADDRESS = "ipAddress";
	
	/**
	 * 操作日時
	 */
	public static final String OPERATEDATETIME = "operateDatetime";

	/**
	 * エラーレベル
	 */
	public static final String ERROR_LEVEL = "errorLevel";

	/**
	 * リターンコード
	 */
	public static final String RETURN_CD = "returnCode";

	/**
	 * リターンメッセージ
	 */
	public static final String RETURN_MESSAGE = "returnMessage";

	/**
	 * 外部インターフェイスID
	 */
	public static final String OUT_IF_ID = "outIfID";
	
	/**
	 * サービスIF
	 */
	public static final String SERVICEIF = "service_if";
	
	/**
	 * サービスIF_ID
	 */
	public static final String SERVICEIFID = "serviceIfID";

	/**
	 * 機能コード
	 */
	public static final String FUNC_CODE = "func_code";

	/**
	 * レコード
	 */
    public static final String RECORD = "record";

    /**
     * 繰り返し要素
     */
    public static final String ELEMENT = "element";

	/**
	 * コマンド実行結果
	 */
    public static final String CMD_RESULT_CD = "CMD_RESULT_CD";

	/**
	 * コマンド実行結果（エラー）
	 */
    public static final String CMD_ERROR_MESSAGE = "CMD_ERROR_MESSAGE";

	/**
	 * TRANK連携の本番／スタブ切り替え処理
	 * 
	 * @return インスタンス
	 */
	public static JZMCtrlTrankInfo getInstance()
	{
		/**
		 * TRANKシステム接続モードフラグ
		 */
		String mode = JCCModelCommon.getApplicationConst("TRANK_CONNECTION_MODE");

		if (mode.equals(TRANK_SYSTEM))
		{
			return JZMCtrlTrankInfoImpl.getInstance();
		}
		else if(mode.equals(TRANK_STUB))
		{
			return JZMCtrlTrankInfoStubImpl.getInstance();
		}
		else
		{
			return null;
		}
	}

	/**
	 * KKIFE333_ランク情報照会APIを呼び出します。
	 * <br>
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception
	 */
	public abstract Map<String, Object> call_KKIFE333(Map<String, Object> serviceMap) throws Exception;

	/**
	 * KKIFE334_チケット利用申請依頼APIを呼び出します。
	 * 
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception
	 */
	public abstract Map<String, Object> call_KKIFE334(Map<String, Object> serviceMap) throws Exception;
	// ANK-3336-01-00 2017/11/21 ADD START
	/**
	 * FUIFE161_チケット申請履歴一覧照会受付APIを呼び出します。
	 * 
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception
	 */
	public abstract Map<String, Object> call_FUIFE161(Map<String, Object> serviceMap) throws Exception;
	// ANK-3336-01-00 2017/11/21 ADD END
	
	// // IT1-2023-0000016 DEL START
	// ANK-4307-00-00 ADD START
//	/**
//	 * KKIFE502_プレミアムクラブポイント登録(TRANK)を呼び出します。
//	 * 
//	 * @param serviceMap サービスマップハッシュテーブル
//	 * @return サービスマップ戻り値
//	 * @throws Exception
//	 */
//	public abstract Map<String, Object> call_KKIFE502(Map<String, Object> serviceMap) throws Exception;
	// ANK-4307-00-00 ADD END
	// IT1-2023-0000016 DEL END
}
