"""
Models for contentserver
"""

from config_models.models import ConfigurationModel
from django.db.models.fields import PositiveIntegerField, TextField


class CourseAssetCacheTtlConfig(ConfigurationModel):
    """Configuration for the TTL of course assets."""

    class Meta(object):
        app_label = 'contentserver'

    cache_ttl = PositiveIntegerField(
        default=0,
        help_text="The time, in seconds, to report that a course asset is allowed to be cached for."
    )

    @classmethod
    def get_cache_ttl(cls):
        """Gets the cache TTL for course assets, if present"""
        return cls.current().cache_ttl

    def __repr__(self):
        return '<CourseAssetCacheTtlConfig(cache_ttl={})>'.format(self.get_cache_ttl())

    def __unicode__(self):
        return unicode(repr(self))


class CdnUserAgentsConfig(ConfigurationModel):
    """Configuration for the user agents we expect to see from CDNs."""

    class Meta(object):
        app_label = 'contentserver'

    cdn_user_agents = TextField(
        default='Amazon CloudFront',
        help_text="A newline-separated list of user agents that should be considered CDNs."
    )

    @classmethod
    def get_cdn_user_agents(cls):
        """Gets the list of CDN user agents, if present"""
        return cls.current().cdn_user_agents

    def __repr__(self):
        return '<WhitelistedCdnConfig(cdn_user_agents={})>'.format(self.get_cdn_user_agents())

    def __unicode__(self):
        return unicode(repr(self))