package com.florianmski.tracktoid.data;
import android.database.Cursor;
import com.florianmski.tracktoid.utils.CursorHelper;
import com.florianmski.tracktoid.data.database.columns.SeasonColumns;
import com.florianmski.tracktoid.data.database.utils.CVUtils;
import com.uwetrottmann.trakt.v2.entities.Images;
import com.uwetrottmann.trakt.v2.entities.Season;
import com.uwetrottmann.trakt.v2.entities.SeasonIds;
import java.util.ArrayList;
import java.util.List;
public class WSeason extends TraktoidItem<CVUtils.SeasonCV.SeasonEntity, CVUtils.SeasonCV.SeasonEntityIds>
{
public int episodesAired;
public int episodeCollected;
public int episodesWatched;
public WSeason(CVUtils.SeasonCV.SeasonEntity traktObject)
{
super(traktObject, new CVUtils.SeasonCV.SeasonEntityIds(traktObject.season.ids));
}
public static WSeason unpack(Cursor cursor)
{
CursorHelper ch = new CursorHelper(cursor);
Season season = new Season();
season.number = ch.getInt(SeasonColumns.NUMBER);
season.overview = ch.getString(SeasonColumns.OVERVIEW);
season.ids = new SeasonIds();
season.images = new Images();
CVUtils.SeasonCV.SeasonEntity seasonEntity = new CVUtils.SeasonCV.SeasonEntity(season);
// unpackEntity(ch, seasonEntity);
// unpackIds(ch, new CVUtils.SeasonCV.SeasonEntityIds(season.ids));
unpackImagesPoster(ch, season.images);
unpackImagesThumb(ch, season.images);
season.rating = ch.getDouble(SeasonColumns.PUBLIC_RATING);
season.votes = ch.getInt(SeasonColumns.VOTES);
season.ids.tmdb = ch.getInt(SeasonColumns.ID_TMDB);
season.ids.trakt = ch.getInt(SeasonColumns.ID_TRAKT);
season.ids.tvdb = ch.getInt(SeasonColumns.ID_TVDB);
season.ids.tvrage = ch.getInt(SeasonColumns.ID_TVRAGE);
WSeason wSeason = new WSeason(seasonEntity);
wSeason.syncInfos = new SyncInfos();
wSeason.episodesAired = ch.getInt(SeasonColumns.EPISODES_AIRED);
wSeason.episodeCollected = ch.getInt(SeasonColumns.EPISODES_COLLECTED);
wSeason.episodesWatched = ch.getInt(SeasonColumns.EPISODES_WATCHED);
wSeason.syncInfos.collectedAt = ch.getDate(SeasonColumns.LAST_COLLECTED_AT);
wSeason.syncInfos.ratedAt = ch.getDate(SeasonColumns.RATED_AT);
wSeason.syncInfos.watchlistedAt = ch.getDate(SeasonColumns.WATCHLISTED_AT);
wSeason.syncInfos.lastWatchedAt = ch.getDate(SeasonColumns.LAST_WATCHED_AT);
wSeason.syncInfos.collected = (wSeason.episodeCollected >= wSeason.episodesAired) && wSeason.episodesAired > 0;
wSeason.syncInfos.rating = ch.getRating(SeasonColumns.RATING);
wSeason.syncInfos.watchlisted = ch.getBoolean(SeasonColumns.WATCHLISTED);
wSeason.syncInfos.watched = (wSeason.episodesWatched >= wSeason.episodesAired) && wSeason.episodesAired > 0;
wSeason.syncInfos.plays = ch.getInt(SeasonColumns.PLAYS);
return wSeason;
}
public static List<WSeason> unpackList(Cursor cursor)
{
List<WSeason> seasons = new ArrayList<>();
if(cursor.moveToFirst())
{
do
seasons.add(unpack(cursor));
while(cursor.moveToNext());
}
return seasons;
}
@Override
public TraktBase getTraktBase()
{
return TraktBase.fromSeason(this);
}
}