package gov.va.med.esr.service.external.person;

import gov.va.med.esr.service.external.ExternalComponent;
import gov.va.med.esr.service.external.person.collections.PhoneCollection;

import java.util.Date;

public class InsuranceInfo extends ExternalComponent {


  
	private static final long serialVersionUID = 3134165999241051621L;



	private String subscriber = null;



    private String insuranceSiteUploadStatus;

    private String reasonInsuranceNotUploaded;


    /**
     * Group Name is defined as the name that the insurance company uses to identify this plan.
     * Shared Seg/Seq/Msg
     * IN1/9/Z04
     */
    protected String groupName = null;

    /**
     * Group Number is defined as the number or code which the insurance company uses to identify this plan.
     * IN1/8/Z04
     */
    private String groupNumber;
    //IN1/15/Z04
    private String planType;
    /**
     * Insurance Company name is defined, as the name of the insurance company
     * IN1/4/Z04
     */
    private String companyName = null;
    
    //from PrivateInsurance
    //IN1/12/Z04
    private String policyEffectiveDate;

    //from PrivateInsurance 
    //IN1/13/Z04
    private String policyExpirationDate;
    //IN1/16/Z04
    private String policyHolderName;
    
    //for private insurance
    //IN1/36/Z04
    private String policyNumber;
    ///8/Z04
    private Boolean enrolledInPartA;
    ///8/Z04
    private Boolean enrolledInPartB;
    ///12/Z04
    // private Date partAEffectiveDate;
    ///12/Z04
    // private Date partBEffectiveDate;
    
    // CCR
    private String partAEffectiveDate;
    private String partBEffectiveDate;
    
   private Date lastEditedDate;
    
   // private String reportSite;
    
    private String insuredRelationship;
   
    //IN1/28/Z04
    private Boolean preadmitCertification;
    
   // private String insuranceMappingType;
    
   // private Boolean eligibleForMedicaid = null;
    //IN1/5/Z04
    private AddressInfo insAddress;
    
    private PhoneCollection insurancePhones;
    private String insuranceMappingTypeName;

    
	public String getCompanyName() {
		return companyName;
	}

	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	/*public Boolean getEligibleForMedicaid() {
		return eligibleForMedicaid;
	}

	public void setEligibleForMedicaid(Boolean eligibleForMedicaid) {
		this.eligibleForMedicaid = eligibleForMedicaid;
	}
*/
	public Boolean isEnrolledInPartA() {
		return enrolledInPartA;
	}

	public void setEnrolledInPartA(Boolean enrolledInPartA) {
		this.enrolledInPartA = enrolledInPartA;
	}

	public Boolean isEnrolledInPartB() {
		return enrolledInPartB;
	}

	public void setEnrolledInPartB(Boolean enrolledInPartB) {
		this.enrolledInPartB = enrolledInPartB;
	}

	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	public String getGroupNumber() {
		return groupNumber;
	}

	public void setGroupNumber(String groupNumber) {
		this.groupNumber = groupNumber;
	}
/*
	public String getInsuranceMappingType() {
		return insuranceMappingType;
	}

	public void setInsuranceMappingType(String insuranceMappingType) {
		this.insuranceMappingType = insuranceMappingType;
	}
*/
	public String getInsuranceSiteUploadStatus() {
		return insuranceSiteUploadStatus;
	}

	public void setInsuranceSiteUploadStatus(String insuranceSiteUploadStatus) {
		this.insuranceSiteUploadStatus = insuranceSiteUploadStatus;
	}

	public String getInsuredRelationship() {
		return insuredRelationship;
	}

	public void setInsuredRelationship(String insuredRelationship) {
		this.insuredRelationship = insuredRelationship;
	}

	public Date getLastEditedDate() {
		return lastEditedDate;
	}

	public void setLastEditedDate(Date lastEditedDate) {
		this.lastEditedDate = lastEditedDate;
	}

	/*
	public Date getPartAEffectiveDate() {
		return partAEffectiveDate;
	}

	public void setPartAEffectiveDate(Date partAEffectiveDate) {
		this.partAEffectiveDate = partAEffectiveDate;
	}

	public Date getPartBEffectiveDate() {
		return partBEffectiveDate;
	}

	public void setPartBEffectiveDate(Date partBEffectiveDate) {
		this.partBEffectiveDate = partBEffectiveDate;
	}
	*/
	public String getPlanType() {
		return planType;
	}

	public void setPlanType(String planType) {
		this.planType = planType;
	}

	public String getPolicyEffectiveDate() {
		return policyEffectiveDate;
	}

	public void setPolicyEffectiveDate(String policyEffectiveDate) {
		this.policyEffectiveDate = policyEffectiveDate;
	}

	public String getPolicyExpirationDate() {
		return policyExpirationDate;
	}

	public void setPolicyExpirationDate(String policyExpirationDate) {
		this.policyExpirationDate = policyExpirationDate;
	}

	public String getPolicyHolderName() {
		return policyHolderName;
	}

	public void setPolicyHolderName(String policyHolderName) {
		this.policyHolderName = policyHolderName;
	}

	public String getPolicyNumber() {
		return policyNumber;
	}

	public void setPolicyNumber(String policyNumber) {
		this.policyNumber = policyNumber;
	}

	public String getReasonInsuranceNotUploaded() {
		return reasonInsuranceNotUploaded;
	}

	public void setReasonInsuranceNotUploaded(String reasonInsuranceNotUploaded) {
		this.reasonInsuranceNotUploaded = reasonInsuranceNotUploaded;
	}
/*
	public String getReportSite() {
		return reportSite;
	}

	public void setReportSite(String reportSite) {
		this.reportSite = reportSite;
	}
*/
	public String getSubscriber() {
		return subscriber;
	}

	public void setSubscriber(String subscriber) {
		this.subscriber = subscriber;
	}
	public AddressInfo getInsAddress(){
	      return insAddress;
	 }
    public void setInsAddress(AddressInfo insAddress){
	         this.insAddress = insAddress;
	}
    public void setPreadmitCertification(Boolean preadmitCertification) {
          this.preadmitCertification=preadmitCertification;
    }
      public Boolean getPreadmitCertification() {
        return this.preadmitCertification;
    }

	public PhoneCollection getInsurancePhones() {
		return insurancePhones;
	}

	public void setInsurancePhones(PhoneCollection insurancePhones) {
		this.insurancePhones = insurancePhones;
	}

    public String getInsuranceMappingTypeName() {
        return insuranceMappingTypeName;
    }

    public void setInsuranceMappingTypeName(String insuranceMappingTypeName) {
        this.insuranceMappingTypeName = insuranceMappingTypeName;
    }

	public String getPartAEffectiveDate() {
		return partAEffectiveDate;
	}

	public void setPartAEffectiveDate(String partAEffectiveDate) {
		this.partAEffectiveDate = partAEffectiveDate;
	}

	public String getPartBEffectiveDate() {
		return partBEffectiveDate;
	}

	public void setPartBEffectiveDate(String partBEffectiveDate) {
		this.partBEffectiveDate = partBEffectiveDate;
	}

	
}
