Untitled

 avatar
unknown
plain_text
14 days ago
18 kB
4
Indexable
package sth.nns.clientservice.model;

import sth.json.JSON;
import sth.json.JacksonHelper;

import java.util.List;
import java.util.ArrayList;

/**
 * Model representing the response from the NNS recommendations personalized API.
 */
public class RecommendationsResponse {
    private String type;
    private String uiHint;
    private boolean vodOutOfWindow;
    private String name;
    private String twcTvNetworkDisplayMode;
    private List<Result> results; // Using the proper generic type
    private int num_categories;
    private int total_results;
    private int start_index;
    private int num_results;
    private int max_results;
    private String dsQueryId;
    private String curationType;
    private List<String> dynamicUris;
    private boolean skeletonShelf;

    public RecommendationsResponse() {
        this.results = new ArrayList<>();
        this.dynamicUris = new ArrayList<>();
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getUiHint() {
        return uiHint;
    }

    public void setUiHint(String uiHint) {
        this.uiHint = uiHint;
    }

    public boolean isVodOutOfWindow() {
        return vodOutOfWindow;
    }

    public void setVodOutOfWindow(boolean vodOutOfWindow) {
        this.vodOutOfWindow = vodOutOfWindow;
    }

    public String getName() {
        return name;
    }

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

    public String getTwcTvNetworkDisplayMode() {
        return twcTvNetworkDisplayMode;
    }

    public void setTwcTvNetworkDisplayMode(String twcTvNetworkDisplayMode) {
        this.twcTvNetworkDisplayMode = twcTvNetworkDisplayMode;
    }

    public List<Result> getResults() {
        return results;
    }

    public void setResults(List<Result> results) {
        this.results = results;
    }

    public int getNum_categories() {
        return num_categories;
    }

    public void setNum_categories(int num_categories) {
        this.num_categories = num_categories;
    }

    public int getTotal_results() {
        return total_results;
    }

    public void setTotal_results(int total_results) {
        this.total_results = total_results;
    }

    public int getStart_index() {
        return start_index;
    }

    public void setStart_index(int start_index) {
        this.start_index = start_index;
    }

    public int getNum_results() {
        return num_results;
    }

    public void setNum_results(int num_results) {
        this.num_results = num_results;
    }

    public int getMax_results() {
        return max_results;
    }

    public void setMax_results(int max_results) {
        this.max_results = max_results;
    }

    public String getDsQueryId() {
        return dsQueryId;
    }

    public void setDsQueryId(String dsQueryId) {
        this.dsQueryId = dsQueryId;
    }

    public String getCurationType() {
        return curationType;
    }

    public void setCurationType(String curationType) {
        this.curationType = curationType;
    }

    public List<String> getDynamicUris() {
        return dynamicUris;
    }

    public void setDynamicUris(List<String> dynamicUris) {
        this.dynamicUris = dynamicUris;
    }

    public boolean isSkeletonShelf() {
        return skeletonShelf;
    }

    public void setSkeletonShelf(boolean skeletonShelf) {
        this.skeletonShelf = skeletonShelf;
    }

    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }

    public RecommendationsResponse defaultModel() {
        // Create a default model for testing
        return this;
    }
}

/**
 * Base class for all result types in the recommendations response.
 */
public abstract class Result {
    private String type;
    private String alphaSortOn;
    private boolean availableOutOfHome;
    private boolean linearAvailableOutOfHome;
    private boolean linearAvailableInMarket;
    private boolean vodAvailableOutOfHome;
    private boolean tvodAvailableOutOfHome;
    private boolean cdvrAvailableOutOfHome;
    private boolean vodOutOfWindow;
    private String image_uri;
    private String network;
    private String title;
    private String titleWithoutArticles;
    private String uri;
    private boolean skeletonShelf;

    public Result() {}

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getAlphaSortOn() {
        return alphaSortOn;
    }

    public void setAlphaSortOn(String alphaSortOn) {
        this.alphaSortOn = alphaSortOn;
    }

    public boolean isAvailableOutOfHome() {
        return availableOutOfHome;
    }

    public void setAvailableOutOfHome(boolean availableOutOfHome) {
        this.availableOutOfHome = availableOutOfHome;
    }

    public boolean isLinearAvailableOutOfHome() {
        return linearAvailableOutOfHome;
    }

    public void setLinearAvailableOutOfHome(boolean linearAvailableOutOfHome) {
        this.linearAvailableOutOfHome = linearAvailableOutOfHome;
    }

    public boolean isLinearAvailableInMarket() {
        return linearAvailableInMarket;
    }

    public void setLinearAvailableInMarket(boolean linearAvailableInMarket) {
        this.linearAvailableInMarket = linearAvailableInMarket;
    }

    public boolean isVodAvailableOutOfHome() {
        return vodAvailableOutOfHome;
    }

    public void setVodAvailableOutOfHome(boolean vodAvailableOutOfHome) {
        this.vodAvailableOutOfHome = vodAvailableOutOfHome;
    }

    public boolean isTvodAvailableOutOfHome() {
        return tvodAvailableOutOfHome;
    }

    public void setTvodAvailableOutOfHome(boolean tvodAvailableOutOfHome) {
        this.tvodAvailableOutOfHome = tvodAvailableOutOfHome;
    }

    public boolean isCdvrAvailableOutOfHome() {
        return cdvrAvailableOutOfHome;
    }

    public void setCdvrAvailableOutOfHome(boolean cdvrAvailableOutOfHome) {
        this.cdvrAvailableOutOfHome = cdvrAvailableOutOfHome;
    }

    public boolean isVodOutOfWindow() {
        return vodOutOfWindow;
    }

    public void setVodOutOfWindow(boolean vodOutOfWindow) {
        this.vodOutOfWindow = vodOutOfWindow;
    }

    public String getImage_uri() {
        return image_uri;
    }

    public void setImage_uri(String image_uri) {
        this.image_uri = image_uri;
    }

    public String getNetwork() {
        return network;
    }

    public void setNetwork(String network) {
        this.network = network;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitleWithoutArticles() {
        return titleWithoutArticles;
    }

    public void setTitleWithoutArticles(String titleWithoutArticles) {
        this.titleWithoutArticles = titleWithoutArticles;
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }

    public boolean isSkeletonShelf() {
        return skeletonShelf;
    }

    public void setSkeletonShelf(boolean skeletonShelf) {
        this.skeletonShelf = skeletonShelf;
    }
}

/**
 * Model for "event" type results in the recommendations response.
 */
public class Event extends Result {
    private List<String> tmsProgramIds;
    private List<String> providerAssetIds;
    private List<String> tmsGuideServiceIds;
    private List<String> ipTmsGuideServiceIds;
    private List<String> streamList;
    private EventDetails details;

    public Event() {
        this.tmsProgramIds = new ArrayList<>();
        this.providerAssetIds = new ArrayList<>();
        this.tmsGuideServiceIds = new ArrayList<>();
        this.ipTmsGuideServiceIds = new ArrayList<>();
        this.streamList = new ArrayList<>();
    }

    public List<String> getTmsProgramIds() {
        return tmsProgramIds;
    }

    public void setTmsProgramIds(List<String> tmsProgramIds) {
        this.tmsProgramIds = tmsProgramIds;
    }

    public List<String> getProviderAssetIds() {
        return providerAssetIds;
    }

    public void setProviderAssetIds(List<String> providerAssetIds) {
        this.providerAssetIds = providerAssetIds;
    }

    public List<String> getTmsGuideServiceIds() {
        return tmsGuideServiceIds;
    }

    public void setTmsGuideServiceIds(List<String> tmsGuideServiceIds) {
        this.tmsGuideServiceIds = tmsGuideServiceIds;
    }

    public List<String> getIpTmsGuideServiceIds() {
        return ipTmsGuideServiceIds;
    }

    public void setIpTmsGuideServiceIds(List<String> ipTmsGuideServiceIds) {
        this.ipTmsGuideServiceIds = ipTmsGuideServiceIds;
    }

    public List<String> getStreamList() {
        return streamList;
    }

    public void setStreamList(List<String> streamList) {
        this.streamList = streamList;
    }

    public EventDetails getDetails() {
        return details;
    }

    public void setDetails(EventDetails details) {
        this.details = details;
    }

    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }
}

/**
 * Model for "episode_list" type results in the recommendations response.
 */
public class EpisodeList extends Result {
    private String tmsSeriesId;
    private String tmsSeriesIdStr;
    private List<String> tmsGuideServiceIds;
    private List<String> ipTmsGuideServiceIds;
    private EpisodeListDetails details;

    public EpisodeList() {
        this.tmsGuideServiceIds = new ArrayList<>();
        this.ipTmsGuideServiceIds = new ArrayList<>();
    }

    public String getTmsSeriesId() {
        return tmsSeriesId;
    }

    public void setTmsSeriesId(String tmsSeriesId) {
        this.tmsSeriesId = tmsSeriesId;
    }

    public String getTmsSeriesIdStr() {
        return tmsSeriesIdStr;
    }

    public void setTmsSeriesIdStr(String tmsSeriesIdStr) {
        this.tmsSeriesIdStr = tmsSeriesIdStr;
    }

    public List<String> getTmsGuideServiceIds() {
        return tmsGuideServiceIds;
    }

    public void setTmsGuideServiceIds(List<String> tmsGuideServiceIds) {
        this.tmsGuideServiceIds = tmsGuideServiceIds;
    }

    public List<String> getIpTmsGuideServiceIds() {
        return ipTmsGuideServiceIds;
    }

    public void setIpTmsGuideServiceIds(List<String> ipTmsGuideServiceIds) {
        this.ipTmsGuideServiceIds = ipTmsGuideServiceIds;
    }

    public EpisodeListDetails getDetails() {
        return details;
    }

    public void setDetails(EpisodeListDetails details) {
        this.details = details;
    }

    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }
}

/**
 * Model for details of an "event" type result.
 */
public class EventDetails {
    private List<Genre> genres;
    private ProgramMetadata programMetadata;
    private String original_air_date;
    private String year;
    private List<String> allRatings;
    private List<String> allVPPs;
    private List<String> allIpVPPs;
    private boolean entitled;
    private boolean tvodEntitled;
    private boolean linearEntitledIp;
    private boolean linearEntitledQam;

    public EventDetails() {
        this.genres = new ArrayList<>();
        this.allRatings = new ArrayList<>();
        this.allVPPs = new ArrayList<>();
        this.allIpVPPs = new ArrayList<>();
    }

    public List<Genre> getGenres() {
        return genres;
    }

    public void setGenres(List<Genre> genres) {
        this.genres = genres;
    }

    public ProgramMetadata getProgramMetadata() {
        return programMetadata;
    }

    public void setProgramMetadata(ProgramMetadata programMetadata) {
        this.programMetadata = programMetadata;
    }

    public String getOriginal_air_date() {
        return original_air_date;
    }

    public void setOriginal_air_date(String original_air_date) {
        this.original_air_date = original_air_date;
    }

    public String getYear() {
        return year;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public List<String> getAllRatings() {
        return allRatings;
    }

    public void setAllRatings(List<String> allRatings) {
        this.allRatings = allRatings;
    }

    public List<String> getAllVPPs() {
        return allVPPs;
    }

    public void setAllVPPs(List<String> allVPPs) {
        this.allVPPs = allVPPs;
    }

    public List<String> getAllIpVPPs() {
        return allIpVPPs;
    }

    public void setAllIpVPPs(List<String> allIpVPPs) {
        this.allIpVPPs = allIpVPPs;
    }

    public boolean isEntitled() {
        return entitled;
    }

    public void setEntitled(boolean entitled) {
        this.entitled = entitled;
    }

    public boolean isTvodEntitled() {
        return tvodEntitled;
    }

    public void setTvodEntitled(boolean tvodEntitled) {
        this.tvodEntitled = tvodEntitled;
    }

    public boolean isLinearEntitledIp() {
        return linearEntitledIp;
    }

    public void setLinearEntitledIp(boolean linearEntitledIp) {
        this.linearEntitledIp = linearEntitledIp;
    }

    public boolean isLinearEntitledQam() {
        return linearEntitledQam;
    }

    public void setLinearEntitledQam(boolean linearEntitledQam) {
        this.linearEntitledQam = linearEntitledQam;
    }

    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }
}

/**
 * Model for details of an "episode_list" type result.
 */
public class EpisodeListDetails {
    private int num_assets;
    private int totalEpisodes;
    private Event latest_episode;
    private List<String> allRatings;
    private List<String> allVPPs;
    private List<String> allIpVPPs;
    private boolean entitled;
    private boolean tvodEntitled;
    private boolean linearEntitledIp;
    private boolean linearEntitledQam;

    public EpisodeListDetails() {
        this.allRatings = new ArrayList<>();
        this.allVPPs = new ArrayList<>();
        this.allIpVPPs = new ArrayList<>();
    }

    public int getNum_assets() {
        return num_assets;
    }

    public void setNum_assets(int num_assets) {
        this.num_assets = num_assets;
    }

    public int getTotalEpisodes() {
        return totalEpisodes;
    }

    public void setTotalEpisodes(int totalEpisodes) {
        this.totalEpisodes = totalEpisodes;
    }

    public Event getLatest_episode() {
        return latest_episode;
    }

    public void setLatest_episode(Event latest_episode) {
        this.latest_episode = latest_episode;
    }

    public List<String> getAllRatings() {
        return allRatings;
    }

    public void setAllRatings(List<String> allRatings) {
        this.allRatings = allRatings;
    }

    public List<String> getAllVPPs() {
        return allVPPs;
    }

    public void setAllVPPs(List<String> allVPPs) {
        this.allVPPs = allVPPs;
    }

    public List<String> getAllIpVPPs() {
        return allIpVPPs;
    }

    public void setAllIpVPPs(List<String> allIpVPPs) {
        this.allIpVPPs = allIpVPPs;
    }

    public boolean isEntitled() {
        return entitled;
    }

    public void setEntitled(boolean entitled) {
        this.entitled = entitled;
    }

    public boolean isTvodEntitled() {
        return tvodEntitled;
    }

    public void setTvodEntitled(boolean tvodEntitled) {
        this.tvodEntitled = tvodEntitled;
    }

    public boolean isLinearEntitledIp() {
        return linearEntitledIp;
    }

    public void setLinearEntitledIp(boolean linearEntitledIp) {
        this.linearEntitledIp = linearEntitledIp;
    }

    public boolean isLinearEntitledQam() {
        return linearEntitledQam;
    }

    public void setLinearEntitledQam(boolean linearEntitledQam) {
        this.linearEntitledQam = linearEntitledQam;
    }

    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }
}

/**
 * Model for program metadata.
 */
public class ProgramMetadata {
    // Add fields as needed based on the actual response
    
    public ProgramMetadata() {}
    
    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }
}

/**
 * Model for genre information.
 */
public class Genre {
    private String name;

    public Genre() {}
    
    public Genre(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    public JSON toJson() {
        return JSON.parse(JacksonHelper.writeValueAsBytes(this));
    }

    public byte[] toBytes() {
        return JacksonHelper.writeValueAsBytes(this);
    }

    @Override
    public String toString() {
        return JacksonHelper.toString(this, 3);
    }
}
Editor is loading...
Leave a Comment