import base64
import json
from datetime import datetime, timezone


def lambda_handler(event, context):
    # Todo need to verify the event parsing successfully
    output = {'records': []}
    print(event['records'])
    for record in event['records']:

        arrival_time = datetime.fromtimestamp(record['approximateArrivalTimestamp'] / 1000)

        # payload = base64.b64decode(record['data'])
        # json_data = json.loads(payload)

        partition_keys = {
            "EventVersion": 0,
            "year": arrival_time.year,
            "month": str(arrival_time.month).zfill(2),
            "date": str(arrival_time.day).zfill(2),
            "hour": str(arrival_time.hour).zfill(2),
        }

        firehose_record_output = {
            'recordId': record['recordId'],
            'data': record['data'],
            'result': 'Ok',
            'metadata': {'partitionKeys': partition_keys}
        }

        output['records'].append(firehose_record_output)

    return output

