# Path: apps/games/models.py
# class Game(models.Model):
#     # Metadata.
#     name = models.CharField(max_length=200)
#     platform = models.ForeignKey(Platform, null=True, related_name='games')
# 
#     # Imagery.
#     image_art = models.ImageField('art', blank=True, upload_to='games',
#         help_text='16:9 art. Used for backgrounds, etc. Minimum size should be 1280x720.')
#     image_boxart = models.ImageField('boxart', blank=True, upload_to='games',
#         help_text='8:11 art akin to Twitch. Used for supplimentary display, lists, etc.')
# 
#     # Statuses.
#     is_abandoned = models.BooleanField('is abandoned?', default=False,
#         help_text='Has this game been abandoned for good?')
#     is_completed = models.BooleanField('is completed?', default=False,
#         help_text='Has this game been completed (if applicable).' )
# 
#     def __str__(self):
#         return '{}'.format(self.name)
# 
#     @staticmethod
#     def autocomplete_search_fields():
#         return ('name__exact', 'name__icontains')


from django.core.urlresolvers import reverse
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils import timezone
from apps.games.models import Game
        import requests
    games = models.ManyToManyField(Game, related_name='appears_on')
    series = models.ForeignKey(Series, blank=True, null=True, related_name='broadcasts',
        help_text='Is this episode part of an ongoing series (i.e., "Whatever Wednesdays", etc.)?')

    # Statuses.
    is_charity = models.BooleanField('is for charity?', default=False,
        help_text='Is a charity fundraiser involved in this episode?')
    is_marathon = models.BooleanField('is a marathon?', default=False,
        help_text='Is this a marathon episode (longer than 12 hours)?')

    class Meta:
        get_latest_by = 'airdate'
        ordering = ['-airdate']

    def __str__(self):
        return 'Episode {}'.format(self.number)

    def get_absolute_url(self):
        return reverse('broadcast-detail', kwargs={'slug': self.number})


class Highlight(models.Model):
    broadcast = models.ForeignKey(Broadcast, blank=True, null=True, related_name='highlights')
    twid = models.CharField('Twitch ID', max_length=200,
        help_text='The highlight\'s ID on Twitch; used for API calls, etc.')

    # Silly metadata (filled out by an API call).
    title = models.CharField(blank=True, max_length=200)
    description = models.TextField(blank=True)
    url = models.URLField('URL', blank=True)

# Path: apps/games/models.py
# class Game(models.Model):
#     # Metadata.
#     name = models.CharField(max_length=200)
#     platform = models.ForeignKey(Platform, null=True, related_name='games')
# 
#     # Imagery.
#     image_art = models.ImageField('art', blank=True, upload_to='games',
#         help_text='16:9 art. Used for backgrounds, etc. Minimum size should be 1280x720.')
#     image_boxart = models.ImageField('boxart', blank=True, upload_to='games',
#         help_text='8:11 art akin to Twitch. Used for supplimentary display, lists, etc.')
# 
#     # Statuses.
#     is_abandoned = models.BooleanField('is abandoned?', default=False,
#         help_text='Has this game been abandoned for good?')
#     is_completed = models.BooleanField('is completed?', default=False,
#         help_text='Has this game been completed (if applicable).' )
# 
#     def __str__(self):
#         return '{}'.format(self.name)
# 
#     @staticmethod
#     def autocomplete_search_fields():
#         return ('name__exact', 'name__icontains')


# Path: apps/broadcasts/models.py
from django.core.urlresolvers import reverse
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils import timezone
from apps.games.models import Game
        import requests

    games = models.ManyToManyField(Game, related_name='appears_on')
    series = models.ForeignKey(Series, blank=True, null=True, related_name='broadcasts',
        help_text='Is this episode part of an ongoing series (i.e., "Whatever Wednesdays", etc.)?')

    # Statuses.
    is_charity = models.BooleanField('is for charity?', default=False,
        help_text='Is a charity fundraiser involved in this episode?')
    is_marathon = models.BooleanField('is a marathon?', default=False,
        help_text='Is this a marathon episode (longer than 12 hours)?')

    class Meta:
        get_latest_by = 'airdate'
        ordering = ['-airdate']

    def __str__(self):
        return 'Episode {}'.format(self.number)

    def get_absolute_url(self):
        return reverse('broadcast-detail', kwargs={'slug': self.number})


class Highlight(models.Model):
    broadcast = models.ForeignKey(Broadcast, blank=True, null=True, related_name='highlights')
    twid = models.CharField('Twitch ID', max_length=200,
        help_text='The highlight\'s ID on Twitch; used for API calls, etc.')

    # Silly metadata (filled out by an API call).
    title = models.CharField(blank=True, max_length=200)
    description = models.TextField(blank=True)
    url = models.URLField('URL', blank=True)

    game = models.ForeignKey(Game, blank=True, null=True, related_name='highlited_on')