package com.prime.sony.ecommerce.model;

import java.util.Date;

import com.prime.sony.ecommerce.util.DateHelper;
import com.prime.sony.ecommerce.util.StringUtil;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Store extends BaseModel{
	
	private String storeId;
	private String snowflake_schema;
	private String platform;
	private String storeName;
	private String territory;
	private String territoryId;
	private String label;
	private String labelId;
	private String artist;
	private String artistId;
	private String tla;
	private String storeUrlPrefix;
	private boolean dedicatedArtistStore;
	private Date consolidated_date_created;
	private Date consolidated_date_modified;
	private String errorMessage;
	private String mailingList_Id;
	private String formId;
	private boolean active;
	
	public String getHeader() {
		return 	"Name,Artist__c,Artist_ID__c,Dedicated_Artist_Store__c,Label__c,Label_ID__c,Platform__c,"
				+ "SnowFlake_Schema__c,Store_Name__c,Store_URL_Prefix__c,Territory__c,Territory_ID__c,"
				+ "TLA__c,Mailing_List_ID__c,Consolidated_Date_Created__c,Consolidated_Date_Modified__c,Form_ID__c,Active__c";		
	}
	
	public String getCSVvalue() {
		StringBuilder sb = new StringBuilder();
		
		//Name
		sb.append(StringUtil.strValidate(this.getStoreId())+",");
		
		//Artist__c
		sb.append(StringUtil.strValidate(this.getArtist())+",");
		
		//Artist_ID__c
		if(null != this.getArtistId()) {
			sb.append(this.getArtistId()+",");
		}else {
			sb.append(",");
		}
		
		//Dedicated_Artist_Store__c
		sb.append(this.isDedicatedArtistStore()+",");
		
		//Label__c
		sb.append(StringUtil.strValidate(this.getLabel())+",");
		
		//Label_ID__c
		if(null != this.getLabelId()) {
			sb.append(this.getLabelId()+",");
		}else {
			sb.append(",");
		}
		
		
		//Platform__c
		sb.append(StringUtil.strValidate(this.getPlatform())+",");
				
		//SnowFlake_Schema__c
		sb.append(StringUtil.strValidate(this.getSnowflake_schema())+",");	
		
		//Store_Name__c
		sb.append(StringUtil.strValidate(this.getStoreName())+",");	
		
		//Store_URL_Prefix__c
		sb.append(StringUtil.strValidate(this.getStoreUrlPrefix())+",");	
		
		//Territory__c
		sb.append(StringUtil.strValidate(this.getTerritory())+",");	
		
		//Territory_ID__c
		if(null != this.getTerritoryId()) {
			sb.append(this.getTerritoryId()+",");
		}else {
			sb.append(",");
		}
		
		//TLA__c
		if(null != this.getTla()) {
			sb.append(this.getTla()+",");
		}else {
			sb.append(",");
		}
		
		//Mailing_List_ID__c
		if(null != this.getMailingList_Id()) {
			sb.append(this.getMailingList_Id()+",");
		}else {
			sb.append(",");
		}
		
		//Consolidated_Date_Created__c
		if(null != this.getConsolidated_date_created()) {
			sb.append(DateHelper.getFormattedDateValue(this.getConsolidated_date_created())+",");
		} else {
			sb.append(",");
		}
			
		//Consolidated_Date_Modified__c
		if(null != this.getConsolidated_date_modified()) {	
		   sb.append(DateHelper.getFormattedDateValue(this.getConsolidated_date_modified())+",");
		} else {
			sb.append(",");
		}
			
			
		// Form_ID__c

		sb.append(this.getFormId() + ",");

		// Active
		sb.append(this.isActive());

		return sb.toString();
	}

}
