using Microsoft.EntityFrameworkCore.Migrations;
using MyAi.Data;
#nullable disable
namespace MyAi.Data.Migrations
{
///
public partial class UpdateEmailTemplatesToHtml : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
void Update(string key, string lang, string value)
=> migrationBuilder.UpdateData("Templates", ["Key", "Language"], [key, lang],
["Value"], [value], MigrationConstants.SchemaName);
// email.match.body — en
Update("email.match.body", "en",
"
CV Match Report
" +
"" +
"" +
"| CV ID | " +
"{{cvDocumentId}} | " +
"
" +
"" +
"| Job | " +
"{{jobLabel}} | " +
"
" +
"" +
"| URL | " +
"{{jobUrl}} | " +
"
" +
"" +
"| Score | " +
"{{score}}% | " +
"
" +
"
" +
"Summary
" +
"{{summary}}
" +
"Strengths
{{strengths}}" +
"Gaps
{{gaps}}" +
"Recommendations
{{recommendations}}");
// email.match.body — ro
Update("email.match.body", "ro",
"Raport Potrivire CV
" +
"" +
"" +
"| ID Document CV | " +
"{{cvDocumentId}} | " +
"
" +
"" +
"| Job | " +
"{{jobLabel}} | " +
"
" +
"" +
"| URL | " +
"{{jobUrl}} | " +
"
" +
"" +
"| Scor | " +
"{{score}}% | " +
"
" +
"
" +
"Rezumat
" +
"{{summary}}
" +
"Puncte forte
{{strengths}}" +
"Lipsuri
{{gaps}}" +
"Recomandări
{{recommendations}}");
// email.match.job-search-footer — en
Update("email.match.job-search-footer", "en",
"" +
"
" +
"Want to find matching jobs automatically? " +
"Start a job search →
" +
"Link valid for {{expiryDays}} days." +
"
" +
"
");
// email.match.job-search-footer — ro
Update("email.match.job-search-footer", "ro",
"");
// email.search-results.body — en
Update("email.search-results.body", "en",
"Job Search Results
" +
"Found {{count}} matching job(s):
" +
"{{items}}");
// email.search-results.body — ro
Update("email.search-results.body", "ro",
"Rezultate Căutare Joburi
" +
"Am găsit {{count}} job(uri) potrivite:
" +
"{{items}}");
// email.search-results.empty — en
Update("email.search-results.empty", "en",
"" +
"
No matching jobs found
" +
"
Your job search completed but no matching jobs were found. Try again later or adjust your CV.
" +
"
");
// email.search-results.empty — ro
Update("email.search-results.empty", "ro",
"" +
"
Niciun job potrivit găsit
" +
"
Căutarea s-a finalizat dar nu au fost găsite joburi potrivite. Încearcă mai târziu sau ajustează CV-ul.
" +
"
");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
void Update(string key, string lang, string value)
=> migrationBuilder.UpdateData("Templates", ["Key", "Language"], [key, lang],
["Value"], [value], MigrationConstants.SchemaName);
Update("email.match.body", "en",
"CV Matcher result\n\nCV Document ID: {{cvDocumentId}}\nJob: {{jobLabel}}\nJob URL: {{jobUrl}}\nScore: {{score}}%\n\nSummary:\n{{summary}}\n\nStrengths:\n{{strengths}}\n\nGaps:\n{{gaps}}\n\nRecommendations:\n{{recommendations}}");
Update("email.match.body", "ro",
"Rezultat potrivire CV\n\nID document CV: {{cvDocumentId}}\nJob: {{jobLabel}}\nURL job: {{jobUrl}}\nScor: {{score}}%\n\nRezumat:\n{{summary}}\n\nPuncte forte:\n{{strengths}}\n\nLipsuri:\n{{gaps}}\n\nRecomandări:\n{{recommendations}}");
Update("email.match.job-search-footer", "en",
"\n\n---\nWant to find more jobs matching your CV?\nClick: {{jobSearchLink}}\n(link valid for {{expiryDays}} days)");
Update("email.match.job-search-footer", "ro",
"\n\n---\nVrei sa gasesti mai multe joburi potrivite CV-ului tau?\nClick: {{jobSearchLink}}\n(link valabil {{expiryDays}} zile)");
Update("email.search-results.body", "en",
"MyAi.ro found {{count}} jobs matching your CV:\n\n{{items}}");
Update("email.search-results.body", "ro",
"MyAi.ro a gasit {{count}} joburi potrivite CV-ului tau:\n\n{{items}}");
Update("email.search-results.empty", "en",
"MyAi.ro found no jobs matching your CV. Try again later or update your CV.");
Update("email.search-results.empty", "ro",
"MyAi.ro nu a gasit joburi care sa corespunda CV-ului tau. Incercati mai tarziu sau ajustati CV-ul.");
}
}
}