package jp.agentec.sinaburocast.common;



/**
 * 定数クラス
 *
 * @author tsukada
 *
 */
public interface SinaburoConstant {
	/**
	 *  リクエスト・セッション投入時の属性名
	 */
	interface AttrKey {
		String BINDING_LISTENER = "bindings.listener";
		String AUTHENTICATED_TOKEN = "AUTHENTICATED_TOKEN";
		String LOGIN_USER = "loginUser";
		String ERRORS = "errorMsg";
	}

	interface MesResKey {
		/** エラー */
		interface Errors {
			// 例外メッセージ
			String SYSTEMEXCEPTION = "errors.SystemException";
			String EXPECTEDEXCEPTION = "errors.ExpectedException";

			// エラー一般
			/** 一般的なシステムエラー */
			String GeneralError = "errors.E000";
			/** 不正アクセス */
			String InvalidAccess = "errors.E001";
			/** ログイン認証エラー */
			String LoginAuthError = "errors.E002";
			// Velocity
			/** Velocity描画中のエラー (VelocityTool内での例外等) */
			String VelocityRenderError = "errors.V001";

			String SESSION_TIMEOUT = "errors.session_timeout";
		}
	}

	interface UserType {
		int ANONYMOUS = 0;
		int USER = 1;
		int MANAGE = 2;
	}

	/** ディレクトリ関連 */
	interface Dir {
		String WINDOWS_SEP = "\\";
		String LINUX_SEP = "/";
	}

	/** フォーマット */
	interface Formats {
		String RETURN = System.getProperty("line.separator");
		String DATATYPE_DATE_FORMAT = "yyyy/MM/dd";
		String DATE_TIME = "yyyy-MM-dd HH:mm:ss";
		String DATATYPE_DATE_FORMAT_NON_SLASH = "yyyyMMdd";
		String TIMESTAMP_FORMAT_YEAR = "yyyy";
		String TIMESTAMP_FORMAT_MONTH = "MM";
		String TIMESTAMP_FORMAT_DAY = "dd";

		//String TIMESTAMP_WA_UNTIL_MIN = "yyyy年MM月dd日 HH:mm";
	}

	interface LoggerName {
		String PROCESS = "PROCESS";
	}

	/** リネーム時使用ファイルタイプ */
	interface RenameFileType {
		String ORG = "ORG";
		String CNV = "CNV";
		String THM = "THM";
		String FLV = "flv";
		String PNG = "png";
	}

	/** 動画フォーマットタイプ */
	interface FormatType {
		String UNKNOWN = "unknown";
		String WMV = "WMV";
		String MPEG2 = "MPEG2";
		String MPEG4 = "MPEG4";
		String QUICK_TIME = "QuickTime";
		String REAL_VIDEO = "RealVideo";
		String FLASH_VIDEO = "FlashVideo";
	}

	interface Status {
		int WAITING = 0;
		int PROCESS = 1;
		int COMPLETED = 2;
		int ERROR = 9;
	}

	/**
	 *  退会理由区分
	 */
	interface ReasonType {

		/** 市川市から転居することになった */
		int MOVING = 0;

		/** メールが多すぎる */
		int MANY_MAIL = 1;

		/** その他 */
		int OTHER = 2;
	}

	/**
	 *  性別区分
	 */
	interface GenderType {

		/** 男性 */
		int MAN = 0;

		/** 女性 */
		int WOMAN = 1;
	}

	/**
	 *  アンケート区分
	 */
	interface EnqueteType {

		/** Eモニ ①*/
		int EMONITOR = 0;

		/** パブリックコメント ②*/
		int PUBLIC_COMMENT = 1;

		/** 1%支援団体寄付 ①*/
		int ORGANIZATION_CONTRIBUTE = 2;

		/** ポイント交換 ①*/
		int POINT_EXCHANGE = 3;

		/** WEBアンケート ③*/
		int WEB_ENQUETE = 4;

		/** 募集 ④*/
		int RECRUITMENT = 5;
	}

	/**
	 *  有効・無効フラグ
	 */
	interface ValidFlg {

		/** 有効 */
		int VALID = 1;

		/** 無効 */
		int INVALID = 0;
	}

	/**
	 *  アンケート状態
	 */
	interface EnqueteStatusType {

		/** 未実施 */
		int UNENFORCEMENT = 0;

		/** 実施中 */
		int ENFORCEMENT = 1;

		/** 完了 */
		int COMPLETE = 2;
	}

	/**
	 *  メールステータス
	 */
	interface MailStatusType {

		/** 未配信 */
		int UNCOMPLETE = 0;

		/** 配信済 */
		int COMPLETE = 1;

		/** 一時保存 */
		int SAVE = 2;
	}

	/**
	 *  配信対象区分
	 */
	interface DeliveryTargetType {

		/** PC用のアドレスのみ */
		String PC = "0";

		/** 携帯用のアドレスのみ */
		String MOBILE = "1";
	}


	/**
	 *  配信方法区分
	 */
	interface DeliveryMethodType {

		/** 時間指定 */
		int SPECIFY = 0;

		/** 即時配信 */
		int IMMEDIATE = 1;
	}

	/**
	 *  設問コントロールタイプ
	 */
	interface ControlType {

		/** ラジオボタン */
		int RADIO = 0;

		/** チェックボックス */
		int CHECKBOX = 1;

		/** セレクトメニュー */
		int SELECTMENU = 2;

		/** テキストボックス */
		int TEXTAREA = 3;

		/** テキストエリア */
		int TEXTFIELD = 4;

		/** 日付入力フォーム */
		int HIDUKE = 5;
	}

	/**
	 *  通知メール送信有無フラグ
	 */
	interface NotifyMailSendType {

		/** 送信無 */
		int SEND_OFF = 0;

		/** 送信有 */
		int SEND_ON = 1;
	}

	/**
	 *  メール送信結果
	 */
	interface SendResultType {

		/** 正常 */
		int SUCCESS = 0;

		/** 異常 */
		int FAIL = 1;
	}

	/** ファイルタイプ */
	interface FileType {

		/** CSVファイル */
		String CSV = "csv";

		/** HTMLファイル */
		String HTML = "html";

		/**TSVファイル */
		String TSV = "tsv";
	}

	/** 操作種別 */
	interface OperationType {

		/** 登録 */
		int INSERT = 0;

		/** 更新 */
		int UPDATE = 1;

		/** 削除 */
		int DELETE = 2;

		/** アップロード */
		int UPLOAD = 3;

		/** ダウンロード */
		int DOWNLOAD = 4;

		/** ログイン */
		int LOGIN = 5;

		/** ログアウト */
		int LOGOUT = 6;
	}

	/** メッセージコード */
	interface MessageCode {

		/** お知らせ */
		int NEWS = 1;

		/** 返信メール */
		int REPLYMAIL = 2;

		/** 現在回答可能なアンケート */
		int ENQUETE = 3;

		/** 1%支援制度の状況 */
		int SUPPORT_SYSTEM = 4;

		/** パスワード確認 */
		int PASS_WORD_CONFIRM = 5;

		/** ポイント利用 */
		int POINT_USE = 6;

		/** 空メール会員登録済み */
		int MEMBER_REGISTERD = 7;

		/** 空メール会員登録確認メール */
		int MEMBER_REGISTER_CONFIRM = 8;

	}

	interface MemberValidFlg {
		/** 有効 */
		String VALID = "1";

		/** 無効 */
		String INVALID = "0";
	}

	interface MemberDelFlg {
		/** 有効 */
		String NOT_DEL = "0";

		/** 削除 */
		String DEL = "1";
	}

	interface DelFlg {
		/** 有効 */
		String NOT_DEL = "0";

		/** 削除 */
		String DEL = "1";
	}

	/**
	 * エコボ満点ポイントの一枚あたりのポイント数
	 */
	interface ECHOBO_MAI_POINT {
		/** 100 */
		int MAI1 = 100;


	}

	/** 端末タイプ */
	interface AccessType {

		/** PC */
		int PC = 1;

		/** 携帯 */
		int MOBILE = 2;

		/** スマフォ */
		int SMARTPHONE = 3;

	}

	interface requiredFlg{

		int REQUIRED = 1;

		int NON_REQUIRED = 1;

	}

	interface freeTextFlg{
		/** なし */
		int NONE = 0;

		/** あり */
		int EXIST = 1;

		/** 必須 */
		int REQUIRED  = 2;


	}

	/**
	 * "通知メール送信有無フラグ	 0:なし、1:あり
	 * @author agentec
	 *
	 */
	interface notifyMailSendFlg{

		/** なし */
		int NOT_SEND = 0;

		/** あり */
		int SEND = 1;

	}

	//改行コード
	interface newLine{

		String RN = "\r\n";

		String N = "\n";

		String SYSTEM = System.getProperty("line.separator");
	}

	interface questionMark{

		String q = "Q";
	}

	interface datePikerSign{

		String signSlash="/";
	}
	/**画面ID*/
	interface screenId{
		String SCM0001 = "SCM0001"; //利用者メニュー(全画面共通部)";
		String SME0001 = "SME0001"; //会員規約画面";
		String SME0002 = "SME0002"; //会員登録画面";
		String SME0003 = "SME0003"; //会員登録完了画面";
		String SME0004 = "SME0004"; //e-モニター会員登録 完了メール";
		String SAU0001 = "SAU0001"; //ログイン画面";
		String SPW0001 = "SPW0001"; //ID・パスワード問い合わせ画面";
		String SPW0002 = "SPW0002"; //ID・パスワード問い合わせメール送信完了画面";
		String SPW0003 = "SPW0003"; //パスワード確認画面";
		String SPW0004 = "SPW0004"; //パスワード確認URL メール";
		String STP0001 = "STP0001"; //ポータル画面";
		String STP0002 = "STP0002"; //利用方法説明画面";
		String STP0003 = "STP0003"; //お問い合わせ画面";
		String STP0004 = "STP0004"; //個人情報取り扱い画面";
		String STP0005 = "STP0005"; //eモニとは画面";
		String SMY0001 = "SMY0001"; //マイページ画面";
		String SMC0001 = "SMC0001"; //登録内容変更画面";
		String SMC0002 = "SMC0002"; //登録内容確認画面";
		String SMC0003 = "SMC0003"; //会員情報変更完了画面";
		String SMC0004 = "SMC0004"; //住所検索一覧画面";
		String SEN0001 = "SEN0001"; //アンケート速報一覧";
		String SEN0002 = "SEN0002"; //アンケート結果画面";
		String SEN0003 = "SEN0003"; //アンケート回答画面";
		String SEN0004 = "SEN0004"; //アンケート回答確認画面";
		String SEN0005 = "SEN0005"; //アンケート回答完了画面";
		String SEN0006 = "SEN0006"; //【eモニ】回答完了メール";
		String SWD0001 = "SWD0001"; //退会手続き画面";
		String SWD0002 = "SWD0002"; //退会手続き確認画面";
		String SWD0003 = "SWD0003"; //退会手続き完了画面";
		String SPE0001 = "SPE0001"; //ポイントの利用説明画面";
		String SPE0002 = "SPE0002"; //ポイントの利用画面";
		String SPE0003 = "SPE0003"; //ポイント交換申請確認画面";
		String SPE0004 = "SPE0004"; //ポイント交換申請完了画面";
		String CCM0001 = "CCM0001"; //管理者TOP(管理者画面共通部)";
		String CAU0001 = "CAU0001"; //管理者ログイン画面";
		String CAD0001 = "CAD0001"; //管理者検索・一覧画面";
		String CAD0002 = "CAD0002"; //管理者登録画面";
		String CAD0003 = "CAD0003"; //管理者登録確認画面";
		String CAD0004 = "CAD0004"; //管理者登録完了画面";
		String CAD0005 = "CAD0005"; //管理者操作履歴画面";
		String CMM0001 = "CMM0001"; //会員検索画面";
		String CMM0002 = "CMM0002"; //会員一覧画面";
		String CMM0003 = "CMM0003"; //会員登録画面";
		String CMM0004 = "CMM0004"; //会員確認画面";
		String CMM0005 = "CMM0005"; //会員登録完了画面";
		String CMM0006 = "CMM0006"; //会員一括登録画面";
		String CMM0007 = "CMM0007"; //会員情報分析画面(月別・日別)";
		String CMM0008 = "CMM0008"; //会員分析レポート(月別・日別)";
		String CMM0009 = "CMM0009"; //会員編集画面";
		String CMM0010 = "CMM0010"; //会員編集確認画面";
		String CMM0011 = "CMM0011"; //会員編集完了画面";
		String CEN0001 = "CEN0001"; //アンケート検索・一覧画面";
		String CEN0002 = "CEN0002"; //アンケート基本設定画面";
		String CEN0003 = "CEN0003"; //アンケート基本設定確認画面";
		String CEN0004 = "CEN0004"; //アンケート基本設定完了画面";
		String CEN0005 = "CEN0005"; //アンケートプレビュー画面";
		String CEN0006 = "CEN0006"; //アンケートプレビュー確認画面";
		String CEN0007 = "CEN0007"; //アンケートプレビュー完了画面";
		String CEN0008 = "CEN0008"; //アンケートメール設定画面";
		String CEN0009 = "CEN0009"; //設問一覧画面";
		String CEN0010 = "CEN0010"; //設問編集画面";
		String CEN0011 = "CEN0011"; //設問編集確認画面";
		String CEN0012 = "CEN0012"; //設問編集完了画面";
		String CEN0013 = "CEN0013"; //アンケート集計結果画面";
		String CEN0014 = "CEN0014"; //アンケート結果ファイル一覧画面";
		String CEN0015 = "CEN0015"; //アンケート集計結果ファイル";
		String CEN0016 = "CEN0016"; //アンケート回答結果ファイル";
		String CDG0001 = "CDG0001"; //配信グループ検索・一覧画面";
		String CDG0002 = "CDG0002"; //配信グループ編集画面";
		String CDG0003 = "CDG0003"; //配信グループ該当顧客一覧画面";
		String CDG0004 = "CDG0004"; //配信グループ一括登録画面";
		String CDG0005 = "CDG0005"; //顧客リスト";
		String CMS0001 = "CMS0001"; //メール検索・一覧画面";
		String CMS0002 = "CMS0002"; //メール作成画面";
		String CMS0003 = "CMS0003"; //メール作成確認画面";
		String CMS0004 = "CMS0004"; //メール作成完了画面";
		String CMS0005 = "CMS0005"; //予約後挿込画面";
		String CMS0006 = "CMS0006"; //メール送信結果画面";
		String CMS0007 = "CMS0007"; //メール送信履歴画面";
		String CMS0008 = "CMS0008"; //エラーリストファイル";
		String CMS0009 = "CMS0009"; //メール編集画面";
		String CMS0010 = "CMS0010"; //メール編集確認画面";
		String CMS0011 = "CMS0011"; //メール編集完了画面";
		String CPE0001 = "CPE0001"; //ポイント交換申請検索画面";
		String CPE0002 = "CPE0002"; //ポイント交換申請結果CSVファイル";
		String CSS0001 = "CSS0001"; //市民活動団体一括登録画面";
		String CSS0002 = "CSS0002"; //市民活動団体一覧画面";
		String CSS0003 = "CSS0003"; //支援ポイント集計結果CSVファイル";
		String COS0001 = "COS0001"; //郵便番号CSVデータアップロード画面";
		String COS0002 = "COS0002"; //画像・ドキュメントファイル一覧画面";
		String COS0003 = "COS0003"; //画像・ドキュメントファイルアップロード画面";
		String COS0004 = "COS0004"; //eモニポイント有効期限設定画面";
		String COS0005 = "COS0005"; //メッセージ設定画面";
		String COS0006 = "COS0006"; //メッセージ設定確認画面";
		String COS0007 = "COS0007"; //メッセージ設定完了画面";
		String SFA0001 = "SFA0001"; //eモニFAQ画面";


	}


	interface filePath{
		String UPLOAD_ERROR_FILE_PATH = "UPLOAD_ERROR_FILE_PATH";
		String CSV_MAKE_FILE_PATH ="CSV_MAKE_FILE_PATH";
		String IMG_UPLOAD_FILE_PATH ="IMG_UPLOAD_FILE_PATH";
		String UPLOAD_TMP_FILE_PATH ="UPLOAD_TMP_FILE_PATH";
	}


	/** アップロード画面のファイルタイプ */
	interface UploadFileType {

		/** イメージファイル */
		String IMG = "1";

		/** ドキュメントファイル */
		String DOC = "2";
	}



	/** 正規表現 */
	interface Regex {
		/** イメージファイル */
		String SLASH_DATE = "([0-9]{4}\\/[0-9]{2}\\/[0-9]{2})";
		String INT_STRING ="[0-9]{1,9}";
		String HANKAKU_09 = "[0-9]+";
		String HANKAKU_E09 = "[0-9a-zA-Z]+";
		String ZENKAKU_KANA="^[ァ-ヶー ]+$";
		String ZENKAKU ="^[^ -~。-゚]+$";
		String POSTNO = "[0-9]{7}";


//		System.out.println("1234".matches(hankaku09));
//		System.out.println("312asd6f54sf654sddf84efs53f4A".matches(hankakuE09));
//		System.out.println("ア".matches(zenkakuKana));
//		System.out.println("感じ".matches(zenkaku));


	}

	/**
	 * メールタイプ
	 */
	interface MailType{
		Integer PASSWORD=1;
		Integer MEMBER_REGIST=2;
		Integer ENQUETE_INFO=3;
	}

	/**
	 * メール送信タイプ
	 */
	interface MailSendType{
		int GROUP = 0;
		int FILE_UPLOAD = 1;
		int AUTO = 2;
	}

	interface MailSendTypeStr {
		String GROUP = "0";
		String FILE_UPLOAD = "1";
		String AUTO = "2";
	}

	interface notRegistOperationHistoryKey{
		String notRegist = "notRegistOperationHistoryKey";
	}


}