from .base import (CERBERUS_RULE_TAXONOMY_TOPIC_LIST,
                   CERBERUS_RULE_TAXONOMY_UNKNOWNTERM_LIST,
                   TAXONOMY_TOPIC_TYPES, AssetSchema, ImageSchema,
                   PullQuoteSchema)


class FeaturedTextSchema(AssetSchema):
    def __init__(self):
        super(FeaturedTextSchema, self).__init__()

        # ********* Classified Object properties *********
        self['unknown_terms'] = {
            'type': 'dict',
            'default': {},
            'schema': {
                '': CERBERUS_RULE_TAXONOMY_UNKNOWNTERM_LIST
            }
        }
        for topic_type in TAXONOMY_TOPIC_TYPES:
            self[topic_type] = CERBERUS_RULE_TAXONOMY_TOPIC_LIST
            self['unknown_terms']['schema'][topic_type] = CERBERUS_RULE_TAXONOMY_UNKNOWNTERM_LIST

        # ********* Featured Text properties *********
        self['pull_quote'] = {
            'type': 'dict',
            'required': True,
            'schema': PullQuoteSchema()
        }
        self['image'] = {
            'nullable': True,
            'default': None,
            'type': 'dict',
            'required': False,
            'schema': ImageSchema()
        }
