refactor(data): rename email-api-data to email-data for consistent naming

- Rename project folder Apis/email-api-data → Apis/email-data
- Rename csproj file: email-api-data.csproj → email-data.csproj
- Update csproj properties: AssemblyName and RootNamespace (email-data, Email.Data)
- Update C# namespaces: EmailApi.Data → Email.Data across all email-data files
- Update project references in api.csproj and email-api.csproj
- Update migration assembly references in api/Program.cs and email-api/Program.cs
- Update cv-search-job references to use email-data project and Email.Data namespace
- Update solution file to reference new email-data project path
- Remove hardcoded schema name from SmtpEmailDispatcher, use template service instead

This maintains consistency with other data project naming convention (no service-type suffix).
All tests passing, build succeeds.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-05-29 09:51:03 +03:00
parent 33d92551da
commit ea9bc87981
23 changed files with 49 additions and 45 deletions
+5 -5
View File
@@ -1,10 +1,10 @@
using System.Reflection; using System.Reflection;
using Api.Services; using Api.Services;
using Api.Services.Contracts; using Api.Services.Contracts;
using EmailApi.Data; using Email.Data;
using EmailApi.Data.Repositories; using Email.Data.Repositories;
using EmailApi.Data.Repositories.Contracts; using Email.Data.Repositories.Contracts;
using EmailApi.Data.Services; using Email.Data.Services;
using EmailApi.Models.Clients; using EmailApi.Models.Clients;
using EmailApi.Models.Settings; using EmailApi.Models.Settings;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
@@ -57,7 +57,7 @@ try
options.UseSqlServer(connectionString, sql => options.UseSqlServer(connectionString, sql =>
{ {
sql.MigrationsHistoryTable(EmailApiDbContext.MigrationTableName, EmailApiDbContext.SchemaName); sql.MigrationsHistoryTable(EmailApiDbContext.MigrationTableName, EmailApiDbContext.SchemaName);
sql.MigrationsAssembly("email-api-data"); sql.MigrationsAssembly("email-data");
}); });
}); });
+1 -1
View File
@@ -1,6 +1,6 @@
using Api.Services.Contracts; using Api.Services.Contracts;
using CvMatcher.Models.Responses; using CvMatcher.Models.Responses;
using EmailApi.Data.Services; using Email.Data.Services;
using EmailApi.Models.Clients; using EmailApi.Models.Clients;
using EmailApi.Models.Requests; using EmailApi.Models.Requests;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
+1 -1
View File
@@ -36,7 +36,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\api-models\api-models.csproj" /> <ProjectReference Include="..\api-models\api-models.csproj" />
<ProjectReference Include="..\email-api-data\email-api-data.csproj" /> <ProjectReference Include="..\email-data\email-data.csproj" />
<ProjectReference Include="..\email-api-models\email-api-models.csproj" /> <ProjectReference Include="..\email-api-models\email-api-models.csproj" />
<ProjectReference Include="..\cv-matcher-api-models\cv-matcher-api-models.csproj" /> <ProjectReference Include="..\cv-matcher-api-models\cv-matcher-api-models.csproj" />
<ProjectReference Include="..\common\common.csproj" /> <ProjectReference Include="..\common\common.csproj" />
+5 -5
View File
@@ -1,8 +1,8 @@
using System.Reflection; using System.Reflection;
using EmailApi.Data; using Email.Data;
using EmailApi.Data.Repositories; using Email.Data.Repositories;
using EmailApi.Data.Repositories.Contracts; using Email.Data.Repositories.Contracts;
using EmailApi.Data.Services; using Email.Data.Services;
using EmailApi.Services; using EmailApi.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Models.Settings; using Models.Settings;
@@ -35,7 +35,7 @@ try
options.UseSqlServer(connectionString, sql => options.UseSqlServer(connectionString, sql =>
{ {
sql.MigrationsHistoryTable(EmailApiDbContext.MigrationTableName, EmailApiDbContext.SchemaName); sql.MigrationsHistoryTable(EmailApiDbContext.MigrationTableName, EmailApiDbContext.SchemaName);
sql.MigrationsAssembly("email-api-data"); sql.MigrationsAssembly("email-data");
}); });
}); });
@@ -1,4 +1,4 @@
using EmailApi.Data.Services; using Email.Data.Services;
using EmailApi.Models.Requests; using EmailApi.Models.Requests;
using MailKit.Net.Smtp; using MailKit.Net.Smtp;
using MailKit.Security; using MailKit.Security;
+1 -1
View File
@@ -23,7 +23,7 @@
<ProjectReference Include="..\..\Helpers\startup-helpers\startup-helpers.csproj" /> <ProjectReference Include="..\..\Helpers\startup-helpers\startup-helpers.csproj" />
<ProjectReference Include="..\api-models\api-models.csproj" /> <ProjectReference Include="..\api-models\api-models.csproj" />
<ProjectReference Include="..\common\common.csproj" /> <ProjectReference Include="..\common\common.csproj" />
<ProjectReference Include="..\email-api-data\email-api-data.csproj" /> <ProjectReference Include="..\email-data\email-data.csproj" />
<ProjectReference Include="..\email-api-models\email-api-models.csproj" /> <ProjectReference Include="..\email-api-models\email-api-models.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>
@@ -1,7 +1,7 @@
using EmailApi.Data.Entities; using Email.Data.Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace EmailApi.Data; namespace Email.Data;
public sealed class EmailApiDbContext : DbContext public sealed class EmailApiDbContext : DbContext
{ {
@@ -1,4 +1,4 @@
namespace EmailApi.Data.Entities; namespace Email.Data.Entities;
// composite PK (Key + Language) — BaseEntity not applicable // composite PK (Key + Language) — BaseEntity not applicable
public sealed class EmailTemplateEntity public sealed class EmailTemplateEntity
@@ -1,4 +1,4 @@
namespace EmailApi.Data; namespace Email.Data;
/// <summary> /// <summary>
/// Schema constants used by EmailApiDbContext and migrations. /// Schema constants used by EmailApiDbContext and migrations.
@@ -1,6 +1,6 @@
// <auto-generated /> // <auto-generated />
using System; using System;
using EmailApi.Data; using Email.Data;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable #nullable disable
namespace EmailApi.Data.Migrations namespace Email.Data.Migrations
{ {
[DbContext(typeof(EmailApiDbContext))] [DbContext(typeof(EmailApiDbContext))]
[Migration("20260528100000_CreateEmailTemplates")] [Migration("20260528100000_CreateEmailTemplates")]
@@ -1,10 +1,10 @@
using System; using System;
using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations;
using EmailApi.Data; using Email.Data;
#nullable disable #nullable disable
namespace EmailApi.Data.Migrations namespace Email.Data.Migrations
{ {
/// <inheritdoc /> /// <inheritdoc />
public partial class CreateEmailTemplates : Migration public partial class CreateEmailTemplates : Migration
@@ -1,6 +1,6 @@
// <auto-generated /> // <auto-generated />
using System; using System;
using EmailApi.Data; using Email.Data;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable #nullable disable
namespace EmailApi.Data.Migrations namespace Email.Data.Migrations
{ {
[DbContext(typeof(EmailApiDbContext))] [DbContext(typeof(EmailApiDbContext))]
[Migration("20260528130652_SeedEmailTemplates")] [Migration("20260528130652_SeedEmailTemplates")]
@@ -1,9 +1,9 @@
using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations;
using EmailApi.Data; using Email.Data;
#nullable disable #nullable disable
namespace EmailApi.Data.Migrations namespace Email.Data.Migrations
{ {
/// <inheritdoc /> /// <inheritdoc />
public partial class SeedEmailTemplates : Migration public partial class SeedEmailTemplates : Migration
@@ -1,6 +1,6 @@
// <auto-generated /> // <auto-generated />
using System; using System;
using EmailApi.Data; using Email.Data;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Metadata;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable #nullable disable
namespace EmailApi.Data.Migrations namespace Email.Data.Migrations
{ {
[DbContext(typeof(EmailApiDbContext))] [DbContext(typeof(EmailApiDbContext))]
partial class EmailApiDbContextModelSnapshot : ModelSnapshot partial class EmailApiDbContextModelSnapshot : ModelSnapshot
@@ -1,6 +1,6 @@
using EmailApi.Data.Entities; using Email.Data.Entities;
namespace EmailApi.Data.Repositories.Contracts; namespace Email.Data.Repositories.Contracts;
public interface IEmailTemplateRepository public interface IEmailTemplateRepository
{ {
@@ -1,8 +1,8 @@
using EmailApi.Data.Entities; using Email.Data.Entities;
using EmailApi.Data.Repositories.Contracts; using Email.Data.Repositories.Contracts;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace EmailApi.Data.Repositories; namespace Email.Data.Repositories;
public sealed class EfEmailTemplateRepository : IEmailTemplateRepository public sealed class EfEmailTemplateRepository : IEmailTemplateRepository
{ {
@@ -1,9 +1,9 @@
using System.Collections.Concurrent; using System.Collections.Concurrent;
using EmailApi.Data.Repositories.Contracts; using Email.Data.Repositories.Contracts;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace EmailApi.Data.Services; namespace Email.Data.Services;
/// <summary> /// <summary>
/// Singleton implementation of <see cref="IEmailTemplateService"/> that caches all email templates /// Singleton implementation of <see cref="IEmailTemplateService"/> that caches all email templates
@@ -1,4 +1,4 @@
namespace EmailApi.Data.Services; namespace Email.Data.Services;
/// <summary> /// <summary>
/// Provides access to localised email templates stored in the <c>emailApi.EmailTemplates</c> table. /// Provides access to localised email templates stored in the <c>emailApi.EmailTemplates</c> table.
@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<AssemblyName>email-api-data</AssemblyName> <AssemblyName>email-data</AssemblyName>
<RootNamespace>EmailApi.Data</RootNamespace> <RootNamespace>Email.Data</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
@@ -13,4 +13,8 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\shared-data\shared-data.csproj" />
<ProjectReference Include="..\email-api-models\email-api-models.csproj" />
</ItemGroup>
</Project> </Project>
+4 -4
View File
@@ -3,10 +3,10 @@ using CvMatcher.Models.Settings;
using CvSearch.Data; using CvSearch.Data;
using CvSearchJob.Clients; using CvSearchJob.Clients;
using CvSearchJob.Services; using CvSearchJob.Services;
using EmailApi.Data; using Email.Data;
using EmailApi.Data.Repositories; using Email.Data.Repositories;
using EmailApi.Data.Repositories.Contracts; using Email.Data.Repositories.Contracts;
using EmailApi.Data.Services; using Email.Data.Services;
using EmailApi.Models.Clients; using EmailApi.Models.Clients;
using CvSearchJob.Tasks; using CvSearchJob.Tasks;
using JobScheduler.Scheduling; using JobScheduler.Scheduling;
@@ -1,6 +1,6 @@
using CvMatcher.Models.Responses; using CvMatcher.Models.Responses;
using CvSearch.Data.Entities; using CvSearch.Data.Entities;
using EmailApi.Data.Services; using Email.Data.Services;
using EmailApi.Models.Clients; using EmailApi.Models.Clients;
using EmailApi.Models.Requests; using EmailApi.Models.Requests;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
+1 -1
View File
@@ -21,7 +21,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\Apis\cv-matcher-api-models\cv-matcher-api-models.csproj" /> <ProjectReference Include="..\..\Apis\cv-matcher-api-models\cv-matcher-api-models.csproj" />
<ProjectReference Include="..\..\Apis\email-api-data\email-api-data.csproj" /> <ProjectReference Include="..\..\Apis\email-data\email-data.csproj" />
<ProjectReference Include="..\..\Apis\email-api-models\email-api-models.csproj" /> <ProjectReference Include="..\..\Apis\email-api-models\email-api-models.csproj" />
<ProjectReference Include="..\..\Apis\cv-search-data\cv-search-data.csproj" /> <ProjectReference Include="..\..\Apis\cv-search-data\cv-search-data.csproj" />
<ProjectReference Include="..\..\Apis\common\common.csproj" /> <ProjectReference Include="..\..\Apis\common\common.csproj" />
+1 -1
View File
@@ -61,7 +61,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "email-api-models", "Apis\em
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "email-api", "Apis\email-api\email-api.csproj", "{434119EA-2FFC-4433-9B8E-1E6D94006413}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "email-api", "Apis\email-api\email-api.csproj", "{434119EA-2FFC-4433-9B8E-1E6D94006413}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "email-api-data", "Apis\email-api-data\email-api-data.csproj", "{C1D2E3F4-A5B6-4789-CDEF-012345678ABC}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "email-data", "Apis\email-data\email-data.csproj", "{C1D2E3F4-A5B6-4789-CDEF-012345678ABC}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution