import json
import boto3
from datetime import datetime

def lambda_handler(event, context):

    record = event['Records'][0]
    event_name = record['eventName']               # ObjectCreated:Put o ObjectRemoved:Delete
    file_name = record['s3']['object']['key']
    bucketName = record['s3']['bucket']['name']
    event_time = record["eventTime"]

    # Cliente SES
    ses = boto3.client("ses")

    # Styles para colores del icono según evento
    if event_name.startswith("ObjectCreated"):
        action = "File Uploaded"
        color = "#16a34a"     # verde
        emoji = "🟢"
    elif event_name.startswith("ObjectRemoved"):
        action = "File Deleted"
        color = "#dc2626"     # rojo
        emoji = "🔴"
    else:
        action = "S3 Event Triggered"
        color = "#2563eb"     # azul
        emoji = "🔵"

    # Asunto dinámico
    subject = f"[S3 Notification] {action} - {bucketName}"

    # Cuerpo HTML (bonito y elegante)
    body = f"""
    <html>
        <body style="font-family: Arial, sans-serif; background-color:#f7f7f7; padding:20px;">
            <div style="max-width:600px; margin:auto; background:#ffffff; padding:20px; border-radius:10px;
                        box-shadow:0 2px 8px rgba(0,0,0,0.15);">

                <h2 style="text-align:center; color:{color}; margin-bottom:10px;">
                    {emoji} {action}
                </h2>

                <p style="font-size:15px; color:#333;">
                    An S3 event has been detected in your bucket. Below are the details:
                </p>

                <table style="width:100%; border-collapse:collapse; margin-top:15px;">
                    <tr>
                        <td style="padding:10px; border:1px solid #ddd; font-weight:bold;">Bucket</td>
                        <td style="padding:10px; border:1px solid #ddd;">{bucketName}</td>
                    </tr>
                    <tr>
                        <td style="padding:10px; border:1px solid #ddd; font-weight:bold;">File</td>
                        <td style="padding:10px; border:1px solid #ddd;">{file_name}</td>
                    </tr>
                    <tr>
                        <td style="padding:10px; border:1px solid #ddd; font-weight:bold;">Event</td>
                        <td style="padding:10px; border:1px solid #ddd;">{event_name}</td>
                    </tr>
                    <tr>
                        <td style="padding:10px; border:1px solid #ddd; font-weight:bold;">Datetime</td>
                        <td style="padding:10px; border:1px solid #ddd;">{event_time}</td>
                    </tr>
                </table>

                <p style="margin-top:20px; font-size:14px; color:#555;">
                    This message was generated automatically by your AWS Lambda function.
                </p>

            </div>
        </body>
    </html>
    """

    # Enviar correo con SES
    ses.send_email(
        Source="diegoyepez@gmail.com",
        Destination={"ToAddresses": ["diegoyepez@gmail.com"]},
        Message={
            "Subject": {"Data": subject},
            "Body": {"Html": {"Data": body}}
        }
    )

    print("Email sent successfully!")
