b5b654532c
Replace div/CSS-class approach with nested table layout so the 600px container is enforced via HTML attributes, not a <style> block that Outlook strips. Also removes border-radius and display:inline-block. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
3.1 KiB
C#
46 lines
3.1 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Email.Data;
|
|
|
|
#nullable disable
|
|
|
|
namespace Email.Data.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class AddHtmlShellTemplates : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
// HTML email shell — opening tags (blue header, white card container)
|
|
migrationBuilder.InsertData(
|
|
table: "Templates",
|
|
columns: new[] { "Key", "Language", "Value", "Description" },
|
|
values: new object[] { "email.html-shell.start", "*", "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n</head>\n<body style=\"margin: 0; padding: 0; background-color: #f5f5f5; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color: #f5f5f5;\">\n <tr>\n <td align=\"center\" style=\"padding: 20px 0;\">\n <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width: 600px; max-width: 600px; background-color: #ffffff;\">\n <tr>\n <td align=\"center\" style=\"background-color: #2c5282; padding: 24px; text-align: center;\">\n <h1 style=\"margin: 0; color: #ffffff; font-size: 24px; font-weight: 600;\">MyAi.ro</h1>\n </td>\n </tr>\n <tr>\n <td style=\"padding: 24px; background-color: #ffffff;\">\n", "Opening HTML wrapper for branded emails (blue header, white content area)" },
|
|
schema: MigrationConstants.SchemaName);
|
|
|
|
// HTML email shell — closing tags (footer)
|
|
migrationBuilder.InsertData(
|
|
table: "Templates",
|
|
columns: new[] { "Key", "Language", "Value", "Description" },
|
|
values: new object[] { "email.html-shell.end", "*", "\n </td>\n </tr>\n <tr>\n <td align=\"center\" style=\"background-color: #f8f9fa; padding: 16px; text-align: center; border-top: 1px solid #dee2e6;\">\n <p style=\"margin: 0; color: #6c757d; font-size: 12px;\">© 2026 MyAi.ro. All rights reserved.</p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n", "Closing HTML wrapper for branded emails (footer and closing tags)" },
|
|
schema: MigrationConstants.SchemaName);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DeleteData(
|
|
table: "Templates",
|
|
keyColumns: new[] { "Key", "Language" },
|
|
keyValues: new object[] { "email.html-shell.start", "*" },
|
|
schema: MigrationConstants.SchemaName);
|
|
|
|
migrationBuilder.DeleteData(
|
|
table: "Templates",
|
|
keyColumns: new[] { "Key", "Language" },
|
|
keyValues: new object[] { "email.html-shell.end", "*" },
|
|
schema: MigrationConstants.SchemaName);
|
|
}
|
|
}
|
|
}
|