package com.bankaudit.process.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="audit_report_dynamic_table")
public class AuditReportDynamicTable implements Serializable {
	 
	private static final long serialVersionUID = 533235104198637355L;

	@Id
	@Column(name="id")
	@GeneratedValue(strategy = javax.persistence.GenerationType.IDENTITY)
	private Integer id;

	@Column(name="legal_entity_code")
	private Integer legalEntityCode;

	@Column(name="audit_type_code")
	private String auditTypeCode;

	@Column(name="plan_id")
	private String planId;

	@Column(name="audit_id")
	private String auditId;

	@Column(name="unit_id")
	private String unitId;
	
	@Column(name="statement_id")
	private String statementId;	 
	
	@Column(name="audit_group_code")
	private String auditGroupCode;
		
	@Column(name="audit_sub_group_code")
	private String auditSubGroupCode;	 
	
	@Column(name="activity_code")
	private String activityCode;
	
	@Column(name="process_code")
	private String processCode;
	
	@Column(name="finding_code")
	private String findingCode;
	 
	@Column(name="applicable_for")
	private String applicableFor;
	
	@Column(name="statement_type")
	private String statementType;
	 
	@Column(name="sequence")
	private Integer sequence;

	@Column(name="table_name")
	private String tableName;
	
	@Column(name="template_name")
	private String templateName;
	
	@Column(name="remarks")
	private String remarks;

	@Column(name="maker")
	private String maker;

	@Column(name="maker_timestamp")
	private Date makerTimestamp;

	@Column(name="header01")
	private String header01;

	@Column(name="header02")
	private String header02;

	@Column(name="header03")
	private String header03;

	@Column(name="header04")
	private String header04;

	@Column(name="header05")
	private String header05;

	@Column(name="header06")
	private String header06;

	@Column(name="header07")
	private String header07;

	@Column(name="header08")
	private String header08;

	@Column(name="header09")
	private String header09;
	
	@Column(name="no_of_columns")
	private Integer noOfColumns;
	 
	//Primary Table AuditLevelDocumentDetails
	@Column(name="doc_id",  unique = false, /*nullable = false,*/ insertable = true, updatable = false)
    private Integer docId;
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval=true)   
	@JoinColumn(name = "table_id")
	private List<AuditReportDynamicTableDetails> auditReportDynamicTableDetailList;  
	 	
	private transient String unitName;
	private transient String auditStatus;
	private transient String auditStatusDesc;
	
	private transient String role;
	private transient String documentType;
	private transient String documentSubType;
	private transient String warningCheck; 
	private transient String documentName;
	private transient String referencePath;
	private transient String observationStatus;
	private transient String fileName;
	private transient Date financialYear;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getLegalEntityCode() {
		return legalEntityCode;
	}
	public void setLegalEntityCode(Integer legalEntityCode) {
		this.legalEntityCode = legalEntityCode;
	}
	public String getAuditTypeCode() {
		return auditTypeCode;
	}
	public void setAuditTypeCode(String auditTypeCode) {
		this.auditTypeCode = auditTypeCode;
	}
	public String getPlanId() {
		return planId;
	}
	public void setPlanId(String planId) {
		this.planId = planId;
	}
	public String getAuditId() {
		return auditId;
	}
	public void setAuditId(String auditId) {
		this.auditId = auditId;
	}
	public String getUnitId() {
		return unitId;
	}
	public void setUnitId(String unitId) {
		this.unitId = unitId;
	}
	public String getStatementId() {
		return statementId;
	}
	public void setStatementId(String statementId) {
		this.statementId = statementId;
	}
	public String getAuditGroupCode() {
		return auditGroupCode;
	}
	public void setAuditGroupCode(String auditGroupCode) {
		this.auditGroupCode = auditGroupCode;
	}
	public String getAuditSubGroupCode() {
		return auditSubGroupCode;
	}
	public void setAuditSubGroupCode(String auditSubGroupCode) {
		this.auditSubGroupCode = auditSubGroupCode;
	}
	public String getActivityCode() {
		return activityCode;
	}
	public void setActivityCode(String activityCode) {
		this.activityCode = activityCode;
	}
	public String getProcessCode() {
		return processCode;
	}
	public void setProcessCode(String processCode) {
		this.processCode = processCode;
	}
	public String getFindingCode() {
		return findingCode;
	}
	public void setFindingCode(String findingCode) {
		this.findingCode = findingCode;
	}
	public String getApplicableFor() {
		return applicableFor;
	}
	public void setApplicableFor(String applicableFor) {
		this.applicableFor = applicableFor;
	}
	public String getStatementType() {
		return statementType;
	}
	public void setStatementType(String statementType) {
		this.statementType = statementType;
	}
	public Integer getSequence() {
		return sequence;
	}
	public void setSequence(Integer sequence) {
		this.sequence = sequence;
	}
	public String getTableName() {
		return tableName;
	}
	public void setTableName(String tableName) {
		this.tableName = tableName;
	}	
	public String getTemplateName() {
		return templateName;
	}
	public void setTemplateName(String templateName) {
		this.templateName = templateName;
	}
	public String getRemarks() {
		return remarks;
	}
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}
	public String getMaker() {
		return maker;
	}
	public void setMaker(String maker) {
		this.maker = maker;
	}
	public Date getMakerTimestamp() {
		return makerTimestamp;
	}
	public void setMakerTimestamp(Date makerTimestamp) {
		this.makerTimestamp = makerTimestamp;
	}
	public String getHeader01() {
		return header01;
	}
	public void setHeader01(String header01) {
		this.header01 = header01;
	}
	public String getHeader02() {
		return header02;
	}
	public void setHeader02(String header02) {
		this.header02 = header02;
	}
	public String getHeader03() {
		return header03;
	}
	public void setHeader03(String header03) {
		this.header03 = header03;
	}
	public String getHeader04() {
		return header04;
	}
	public void setHeader04(String header04) {
		this.header04 = header04;
	}
	public String getHeader05() {
		return header05;
	}
	public void setHeader05(String header05) {
		this.header05 = header05;
	}
	public String getHeader06() {
		return header06;
	}
	public void setHeader06(String header06) {
		this.header06 = header06;
	}
	public String getHeader07() {
		return header07;
	}
	public void setHeader07(String header07) {
		this.header07 = header07;
	}
	public String getHeader08() {
		return header08;
	}
	public void setHeader08(String header08) {
		this.header08 = header08;
	}
	public String getHeader09() {
		return header09;
	}
	public void setHeader09(String header09) {
		this.header09 = header09;
	}
	public Integer getNoOfColumns() {
		return noOfColumns;
	}
	public void setNoOfColumns(Integer noOfColumns) {
		this.noOfColumns = noOfColumns;
	}
	public Integer getDocId() {
		return docId;
	}
	public void setDocId(Integer docId) {
		this.docId = docId;
	}	 
	public List<AuditReportDynamicTableDetails> getAuditReportDynamicTableDetailList() {
		return auditReportDynamicTableDetailList;
	}
	public void setAuditReportDynamicTableDetailList(
			List<AuditReportDynamicTableDetails> auditReportDynamicTableDetailList) {
		this.auditReportDynamicTableDetailList = auditReportDynamicTableDetailList;
	}
	public String getUnitName() {
		return unitName;
	}
	public void setUnitName(String unitName) {
		this.unitName = unitName;
	}
	public String getAuditStatus() {
		return auditStatus;
	}
	public void setAuditStatus(String auditStatus) {
		this.auditStatus = auditStatus;
	}
	public String getAuditStatusDesc() {
		return auditStatusDesc;
	}
	public void setAuditStatusDesc(String auditStatusDesc) {
		this.auditStatusDesc = auditStatusDesc;
	}
	public String getRole() {
		return role;
	}
	public void setRole(String role) {
		this.role = role;
	}
	public String getDocumentType() {
		return documentType;
	}
	public void setDocumentType(String documentType) {
		this.documentType = documentType;
	}
	public String getDocumentSubType() {
		return documentSubType;
	}
	public void setDocumentSubType(String documentSubType) {
		this.documentSubType = documentSubType;
	}
	public String getWarningCheck() {
		return warningCheck;
	}
	public void setWarningCheck(String warningCheck) {
		this.warningCheck = warningCheck;
	}
	public String getDocumentName() {
		return documentName;
	}
	public void setDocumentName(String documentName) {
		this.documentName = documentName;
	}	
	public String getReferencePath() {
		return referencePath;
	}
	public void setReferencePath(String referencePath) {
		this.referencePath = referencePath;
	}
	public String getObservationStatus() {
		return observationStatus;
	}
	public void setObservationStatus(String observationStatus) {
		this.observationStatus = observationStatus;
	}
	public String getFileName() {
		return fileName;
	}
	public void setFileName(String fileName) {
		this.fileName = fileName;
	}
	public Date getFinancialYear() {
		return financialYear;
	}
	public void setFinancialYear(Date financialYear) {
		this.financialYear = financialYear;
	}  
	
}
