/********************************************************************
 * Copyright © 2005 VHA. All rights reserved
 ********************************************************************/
package gov.va.med.esr.service.trigger;

import gov.va.med.esr.service.trigger.BulletinTrigger.DataType;

import org.apache.commons.lang.enums.Enum;

/**
 * Defines the data types for bulletin entities.
 *
 * @author Andrew Pach
 * @version 3.0
 */
public interface BulletinTrigger extends CommonTrigger {

	/**
	 * Contains all known data types for Bulletin TriggerEvents (i.e. the
	 * various bulletin names).
	 */
	public class DataType extends Enum {

		/**
		 *
		 */
		private static final long serialVersionUID = -8642524494852076964L;

		public static final DataType HEC_NOTIFY_PURPLE_HEART_NO_DECISION = new DataType(
				"HEC_NOTIFY_PURPLE_HEART_NO_DECISION");
		public static final DataType ENROLLMENT_LETTER_PROCESSING = new DataType(
				"ENROLLMENT_LETTER_PROCESSING");
		public static final DataType HEC_NOTIFY_SITE_VETERAN_VERIFICATION = new DataType(
				"HEC_NOTIFY_SITE_VETERAN_VERIFICATION");
		public static final DataType HEC_NOTIFY_SITE_SEND_INELIGIBLE_INFO = new DataType(
				"HEC_NOTIFY_SITE_SEND_INELIGIBLE_INFO");
		public static final DataType HEC_NOTIFY_SITE_VERIFY_DOD_DELETION = new DataType(
				"HEC_NOTIFY_SITE_VERIFY_DOD_DELETION");
		public static final DataType HEC_NOTIFY_POW_DISCREPANCY_NOT_POW = new DataType(
				"HEC_NOTIFY_POW_DISCREPANCY_NOT_POW");
		public static final DataType HEC_NOTIFY_POW_DISCREPANCY_NOT_MATCH = new DataType(
				"HEC_NOTIFY_POW_DISCREPANCY_NOT_MATCH");
		public static final DataType HEC_NOTIFY_SSA_RECORD_NOT_MATCH_HEC_INTERNAL_ID = new DataType(
				"HEC_NOTIFY_SSA_RECORD_NOT_MATCH_HEC_INTERNAL_ID");
		public static final DataType SOLICITED_Z11_NO_MATCH = new DataType(
				"SOLICITED_Z11_NO_MATCH");
		public static final DataType ELIG_NOT_VERIFIED_CALL_HEC = new DataType(
				"ELIG_NOT_VERIFIED_CALL_HEC");
		public static final DataType HEC_NOTIFY_POW_NO = new DataType(
				"HEC_NOTIFY_POW_NO");
		public static final DataType INCONS_CONFLICT_DATA_FROM_SITE = new DataType(
				"INCONS_CONFLICT_DATA_FROM_SITE");
		public static final DataType NCOA_PROCESS_ENDED = new DataType(
				"NCOA_PROCESS_ENDED");
		public static final DataType OPP_EXTRACT_COMPLETED = new DataType(
				"OPP_EXTRACT_COMPLETED");
		public static final DataType BAD_ADDRESS_NOTIFY = new DataType(
				"BAD_ADDRESS_NOTIFY");
		public static final DataType HEC_NOTIFY_APPLICATION_CONVERSION_COMPLETE = new DataType(
				"HEC_NOTIFY_APPLICATION_CONVERSION_COMPLETE");
		public static final DataType VOA_SPINAL_CORD_INJURY = new DataType(
				"VOA_SPINAL_CORD_INJURY");
		public static final DataType HEC_NOTIFY_VA_PENSION_TO_AA = new DataType(
				"HEC_NOTIFY_VA_PENSION_TO_AA");
		public static final DataType HEC_NOTIFY_SC_VA_PENSION_TERMINATE = new DataType(
				"HEC_NOTIFY_SC_VA_PENSION_TERMINATE");
		public static final DataType HEC_NOTIFY_NSC_VA_PENSION_TERMINATE = new DataType(
				"HEC_NOTIFY_NSC_VA_PENSION_TERMINATE");
		public static final DataType HEC_NOTIFY_VA_PENSION_TO_HB = new DataType(
				"HEC_NOTIFY_VA_PENSION_TO_HB");
		public static final DataType HEC_NOTIFY_SC_TO_VA_PENSION = new DataType(
				"HEC_NOTIFY_SC_TO_VA_PENSION");
		public static final DataType HEC_NOTIFY_NSC_TO_VA_PENSION = new DataType(
				"HEC_NOTIFY_NSC_TO_VA_PENSION");
		public static final DataType HANDBOOK_LETTER_PROCESSING = new DataType(
				"HANDBOOK_LETTER_PROCESSING");
		public static final DataType MEC_LETTER_PROCESSING = new DataType(
				"MEC_LETTER_PROCESSING");
		public static final DataType HEC_NOTIFY_SITE_PERSON_ADDED = new DataType(
				"HEC_NOTIFY_SITE_PERSON_ADDED");
		public static final DataType DELIVERY_PREFERENCE_CHANGE_MAIL_TO_ONLINE = new DataType(
				"Delivery_Preference_Change_Mail_To_Online");
		public static final DataType DELIVERY_PREFERENCE_CHANGE_ONLINE_TO_MAIL = new DataType(
				"Delivery_Preference_Change_Online_To_Mail");
		public static final DataType TRIGGER_HANDBOOK_COMMUNICATION = new DataType(
				"TRIGGER_HANDBOOK_COMMUNICATION");

		public static final DataType Person_Not_Found_for_Veteran_submitted_in_VOA = new DataType(
				"Person_Not_Found_for_Veteran_submitted_in_VOA");

		// CodeCR12798 ESE VOA BizFlow - add email notification to BizFlow regarding Person Not Found for Veteran Submitted
		public static final DataType Person_Not_Found_for_Veteran_submitted_in_VOA_WORKFLOW = new DataType(
		"Person_Not_Found_for_Veteran_submitted_in_VOA_WORKFLOW");

		public static final DataType Initial_Submission_Confirmation = new DataType(
				"Initial_Submission_Confirmation");

		public static final DataType VOA_NOTIFY_VET_NEED_MORE_INFO = new DataType(
		"VOA_NOTIFY_VET_NEED_MORE_INFO");

		public static final DataType IRS_SUBMISSION_FAILURE = new DataType(
				"IRS_SUBMISSION_FAILURE");

		public static final DataType IRS_ACKNOWLEDGEMENT_EXPIRY = new DataType(
				"IRS_ACKNOWLEDGEMENT_EXPIRY");

		private DataType(String name) {
			super(name);
		}
	}
}
