'use strict';
define(
    [
        'backbone',
        'Series/EpisodeModel'
    ], function (Backbone, EpisodeModel) {
        return Backbone.Collection.extend({
            url  : window.ApiRoot + '/episodes',
            model: EpisodeModel,

            bySeason: function (season) {
                var filtered = this.filter(function (episode) {
                    return episode.get('seasonNumber') === season;
                });

                var EpisodeCollection = require('Series/EpisodeCollection');

                return new EpisodeCollection(filtered);
            },

            comparator: function (model1, model2) {
                var episode1 = model1.get('episodeNumber');

                var episode2 = model2.get('episodeNumber');

                if (episode1 < episode2){
                    return 1;
                }

                if (episode1 > episode2){
                    return -1;
                }

                return 0;
            },

            state: {
                sortKey: 'episodeNumber',
                order  : -1
            }
        });
    });