package com.sonymusic.dx.dxadvsearchservice.searchModel;

public class TrackSearchModel {

    private String isrcOrTrackNo;
    private String takenFromIsrc;
    private String trackTitle;
    private String trackTitleSupplimental;
    private Long songNo;
    private TrackRequestModel language;
    private TrackRequestModel titleLanguage;
    private TrackRequestModel lyricsInitiator;
    private TrackRequestModel trackType;
    private TrackRequestModel trackSubType;
    private TrackRequestModel trackMedium;
    private TrackRequestModel maintenanceOwner;
    private TrackRequestModel initiator;
    private String initiatedBy;
    private String initiatedBetweenFrom;
    private String initiatedBetweenTo;
    private TrackRequestModel repertoireOwner;
    private TrackRequestModel genre;
    private TrackRequestModel content;
    private TrackRequestModel complete;
    private String completeBetweenFrom;
    private String completeBetweenTo;
    private String matrixNo;
    private String gridNo;
    private TrackRequestModel dataSource;
    private TrackRequestModel originalPerformer;
    private TrackRequestModel footageType;
    private boolean live;



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


        public TrackRequestModel(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 getIsrcOrTrackNo() {
        return isrcOrTrackNo;
    }

    public void setIsrcOrTrackNo(String isrcOrTrackNo) {
        this.isrcOrTrackNo = isrcOrTrackNo;
    }

    public boolean isLive() {
        return live;
    }

    public void setLive(boolean live) {
        this.live = live;
    }

    public TrackRequestModel getFootageType() {
        return footageType;
    }

    public void setFootageType(TrackRequestModel footageType) {
        this.footageType = footageType;
    }

    public TrackRequestModel getOriginalPerformer() {
        return originalPerformer;
    }

    public void setOriginalPerformer(TrackRequestModel originalPerformer) {
        this.originalPerformer = originalPerformer;
    }

    public TrackRequestModel getDataSource() {
        return dataSource;
    }

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

    public String getGridNo() {
        return gridNo;
    }

    public void setGridNo(String gridNo) {
        this.gridNo = gridNo;
    }

    public String getMatrixNo() {
        return matrixNo;
    }

    public void setMatrixNo(String matrixNo) {
        this.matrixNo = matrixNo;
    }

    public String getCompleteBetweenTo() {
        return completeBetweenTo;
    }

    public void setCompleteBetweenTo(String completeBetweenTo) {
        this.completeBetweenTo = completeBetweenTo;
    }

    public String getCompleteBetweenFrom() {
        return completeBetweenFrom;
    }

    public void setCompleteBetweenFrom(String completeBetweenFrom) {
        this.completeBetweenFrom = completeBetweenFrom;
    }

    public TrackRequestModel getComplete() {
        return complete;
    }

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

    public TrackRequestModel getContent() {
        return content;
    }

    public void setContent(TrackRequestModel content) {
        this.content = content;
    }

    public TrackRequestModel getGenre() {
        return genre;
    }

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

    public TrackRequestModel getRepertoireOwner() {
        return repertoireOwner;
    }

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

    public String getInitiatedBetweenTo() {
        return initiatedBetweenTo;
    }

    public void setInitiatedBetweenTo(String initiatedBetweenTo) {
        this.initiatedBetweenTo = initiatedBetweenTo;
    }

    public String getInitiatedBetweenFrom() {
        return initiatedBetweenFrom;
    }

    public void setInitiatedBetweenFrom(String initiatedBetweenFrom) {
        this.initiatedBetweenFrom = initiatedBetweenFrom;
    }

    public String getInitiatedBy() {
        return initiatedBy;
    }

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

    public TrackRequestModel getInitiator() {
        return initiator;
    }

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

    public TrackRequestModel getMaintenanceOwner() {
        return maintenanceOwner;
    }

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

    public TrackRequestModel getTrackMedium() {
        return trackMedium;
    }

    public void setTrackMedium(TrackRequestModel trackMedium) {
        this.trackMedium = trackMedium;
    }

    public TrackRequestModel getTrackSubType() {
        return trackSubType;
    }

    public void setTrackSubType(TrackRequestModel trackSubType) {
        this.trackSubType = trackSubType;
    }

    public TrackRequestModel getTrackType() {
        return trackType;
    }

    public void setTrackType(TrackRequestModel trackType) {
        this.trackType = trackType;
    }

    public TrackRequestModel getLyricsInitiator() {
        return lyricsInitiator;
    }

    public void setLyricsInitiator(TrackRequestModel lyricsInitiator) {
        this.lyricsInitiator = lyricsInitiator;
    }

    public TrackRequestModel getTitleLanguage() {
        return titleLanguage;
    }

    public void setTitleLanguage(TrackRequestModel titleLanguage) {
        this.titleLanguage = titleLanguage;
    }

    public TrackRequestModel getLanguage() {
        return language;
    }

    public void setLanguage(TrackRequestModel language) {
        this.language = language;
    }

    public Long getSongNo() {
        return songNo;
    }

    public void setSongNo(Long songNo) {
        this.songNo = songNo;
    }

    public String getTrackTitleSupplimental() {
        return trackTitleSupplimental;
    }

    public void setTrackTitleSupplimental(String trackTitleSupplimental) {
        this.trackTitleSupplimental = trackTitleSupplimental;
    }

    public String getTrackTitle() {
        return trackTitle;
    }

    public void setTrackTitle(String trackTitle) {
        this.trackTitle = trackTitle;
    }

    public String getTakenFromIsrc() {
        return takenFromIsrc;
    }

    public void setTakenFromIsrc(String takenFromIsrc) {
        this.takenFromIsrc = takenFromIsrc;
    }
}
