package com.sonymusic.dx.dxadvsearchservice.searchModel;

public class ProductSearchModel {

    private String productNo;
    private String productTitle;
    private String productTitleSupplemental;
    private String digitalTitleSupplemental;
    private String mainArtist;
    private ProductRequestModel configurationCategory;
    private ProductRequestModel configIsDigital;
    private boolean ignoreAutoGenProd;
    private ProductRequestModel productConfiguration;
    private String firstReleaseFromDate;
    private String firstReleaseToDate;
    private ProductRequestModel complete;
    private ProductRequestModel publishStatus;
    private String completeBetweenFromDate;
    private String completeBetweenToDate;
    private ProductRequestModel imprintLabel;
    private ProductRequestModel initiator;
    private String initiatedBy;
    private ProductRequestModel repertoireOwner;
    private ProductRequestModel genre;
    private ProductRequestModel productPurpose;
    private ProductRequestModel productClass;
    private boolean sonyRightsExpired;
    private String barcode;
    private String gridNumber;
    private ProductRequestModel dataSource;
    private String catalogPrefix;
    private String catalogCore;
    private String affiliate;
    private String gclsNo;
    private ProductRequestModel productTitleLanguage;
    private ProductRequestModel maintenanceOwner;
    private String raasInitiatedFromDate;
    private String raasInitiatedToDate;

    public static class ProductRequestModel {
        private Object key;
        private String name;


        public ProductRequestModel(Object key,String name){
            this.key = key;
            this.name=name;
        }

        public  Object getKey(){
            return key;
        }

        public void setKey(Object key){
            this.key = key;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Long getKeyAsLong(){
            if (key instanceof Long){
                return (Long) key;
            }
            if (key instanceof String){
                return Long.valueOf((String) key);
            }
            return null;
        }

        public String getKeyAsString(){
            return key!=null?key.toString() :null;
        }

    }

    public String getProductNo() {
        return productNo;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo;
    }

    public String getProductTitle() {
        return productTitle;
    }

    public void setProductTitle(String productTitle) {
        this.productTitle = productTitle;
    }

    public String getProductTitleSupplemental() {
        return productTitleSupplemental;
    }

    public void setProductTitleSupplemental(String productTitleSupplemental) {
        this.productTitleSupplemental = productTitleSupplemental;
    }

    public String getDigitalTitleSupplemental() {
        return digitalTitleSupplemental;
    }

    public void setDigitalTitleSupplemental(String digitalTitleSupplemental) {
        this.digitalTitleSupplemental = digitalTitleSupplemental;
    }

    public String getMainArtist() {
        return mainArtist;
    }

    public void setMainArtist(String mainArtist) {
        this.mainArtist = mainArtist;
    }

    public ProductRequestModel getConfigurationCategory() {
        return configurationCategory;
    }


    public boolean isIgnoreAutoGenProd() {
        return ignoreAutoGenProd;
    }

    public void setIgnoreAutoGenProd(boolean ignoreAutoGenProd) {
        this.ignoreAutoGenProd = ignoreAutoGenProd;
    }

    public ProductRequestModel getProductConfiguration() {
        return productConfiguration;
    }

    public ProductRequestModel getConfigIsDigital() {
        return configIsDigital;
    }

    public void setConfigIsDigital(ProductRequestModel configIsDigital) {
        this.configIsDigital = configIsDigital;
    }

    public ProductRequestModel getComplete() {
        return complete;
    }

    public void setComplete(ProductRequestModel complete) {
        this.complete = complete;
    }

    public String getCompleteBetweenFromDate() {
        return completeBetweenFromDate;
    }

    public void setCompleteBetweenFromDate(String completeBetweenFromDate) {
        this.completeBetweenFromDate = completeBetweenFromDate;
    }

    public String getCompleteBetweenToDate() {
        return completeBetweenToDate;
    }

    public void setCompleteBetweenToDate(String completeBetweenToDate) {
        this.completeBetweenToDate = completeBetweenToDate;
    }

    public String getInitiatedBy() {
        return initiatedBy;
    }

    public void setInitiatedBy(String initiatedBy) {
        this.initiatedBy = initiatedBy;
    }


    public boolean isSonyRightsExpired() {
        return sonyRightsExpired;
    }

    public void setSonyRightsExpired(boolean sonyRightsExpired) {
        this.sonyRightsExpired = sonyRightsExpired;
    }

    public String getBarcode() {
        return barcode;
    }

    public void setBarcode(String barcode) {
        this.barcode = barcode;
    }

    public String getGridNumber() {
        return gridNumber;
    }

    public void setGridNumber(String gridNumber) {
        this.gridNumber = gridNumber;
    }

    public ProductRequestModel getDataSource() {
        return dataSource;
    }

    public void setDataSource(ProductRequestModel dataSource) {
        this.dataSource = dataSource;
    }

    public String getCatalogPrefix() {
        return catalogPrefix;
    }

    public void setCatalogPrefix(String catalogPrefix) {
        this.catalogPrefix = catalogPrefix;
    }

    public String getCatalogCore() {
        return catalogCore;
    }

    public void setCatalogCore(String catalogCore) {
        this.catalogCore = catalogCore;
    }

    public String getAffiliate() {
        return affiliate;
    }

    public void setAffiliate(String affiliate) {
        this.affiliate = affiliate;
    }

    public String getGclsNo() {
        return gclsNo;
    }

    public void setGclsNo(String gclsNo) {
        this.gclsNo = gclsNo;
    }

    public ProductRequestModel getProductTitleLanguage() {
        return productTitleLanguage;
    }

    public void setProductTitleLanguage(ProductRequestModel productTitleLanguage) {
        this.productTitleLanguage = productTitleLanguage;
    }

    public void setConfigurationCategory(ProductRequestModel configurationCategory) {
        this.configurationCategory = configurationCategory;
    }

    public void setProductConfiguration(ProductRequestModel productConfiguration) {
        this.productConfiguration = productConfiguration;
    }

    public ProductRequestModel getPublishStatus() {
        return publishStatus;
    }

    public void setPublishStatus(ProductRequestModel publishStatus) {
        this.publishStatus = publishStatus;
    }

    public ProductRequestModel getImprintLabel() {
        return imprintLabel;
    }

    public void setImprintLabel(ProductRequestModel imprintLabel) {
        this.imprintLabel = imprintLabel;
    }

    public ProductRequestModel getInitiator() {
        return initiator;
    }

    public void setInitiator(ProductRequestModel initiator) {
        this.initiator = initiator;
    }

    public ProductRequestModel getRepertoireOwner() {
        return repertoireOwner;
    }

    public void setRepertoireOwner(ProductRequestModel repertoireOwner) {
        this.repertoireOwner = repertoireOwner;
    }

    public ProductRequestModel getGenre() {
        return genre;
    }

    public void setGenre(ProductRequestModel genre) {
        this.genre = genre;
    }

    public ProductRequestModel getProductPurpose() {
        return productPurpose;
    }

    public void setProductPurpose(ProductRequestModel productPurpose) {
        this.productPurpose = productPurpose;
    }

    public ProductRequestModel getProductClass() {
        return productClass;
    }

    public void setProductClass(ProductRequestModel productClass) {
        this.productClass = productClass;
    }

    public ProductRequestModel getMaintenanceOwner() {
        return maintenanceOwner;
    }

    public void setMaintenanceOwner(ProductRequestModel maintenanceOwner) {
        this.maintenanceOwner = maintenanceOwner;
    }

    public String getFirstReleaseFromDate() {
        return firstReleaseFromDate;
    }

    public void setFirstReleaseFromDate(String firstReleaseFromDate) {
        this.firstReleaseFromDate = firstReleaseFromDate;
    }

    public String getFirstReleaseToDate() {
        return firstReleaseToDate;
    }

    public void setFirstReleaseToDate(String firstReleaseToDate) {
        this.firstReleaseToDate = firstReleaseToDate;
    }

    public String getRaasInitiatedFromDate() {
        return raasInitiatedFromDate;
    }

    public void setRaasInitiatedFromDate(String raasInitiatedFromDate) {
        this.raasInitiatedFromDate = raasInitiatedFromDate;
    }

    public String getRaasInitiatedToDate() {
        return raasInitiatedToDate;
    }

    public void setRaasInitiatedToDate(String raasInitiatedToDate) {
        this.raasInitiatedToDate = raasInitiatedToDate;
    }
}
