from elasticsearch.helpers import scan

from distribution import app
from distribution.models.feed import FeedItem


def update_schema():
    actions = []
    generator = scan(
        FeedItem.manager.backend.client,
        {},
        index=app.config.get('ELASTICSEARCH_FEED_INDEX_NAME', 'distribution_feed'),
        raise_on_error=False
    )

    for key in generator:

        if key['_source'].get('created_at'):

            key['_source']['meta']['created_at'] = key['_source']['created_at']
            del key['_source']['created_at']

            actions.append({
                '_op_type': 'index',
                '_index': key['_index'],
                '_type': key['_type'],
                '_id': key['_id'],
                '_source': key['_source']
            })

    FeedItem.manager.backend.bulk(actions)

if __name__ == "__main__":
    update_schema()
