From 487924e345793434d7851f7a08e9aadcaece4cc8 Mon Sep 17 00:00:00 2001 From: claude Date: Fri, 29 May 2026 09:38:25 +0300 Subject: [PATCH] =?UTF-8?q?Move=20RAG=20repository=20from=20rag-api=20to?= =?UTF-8?q?=20rag-data=20=E2=80=94=20consolidate=20data=20layer=20ownershi?= =?UTF-8?q?p?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move IRagRepository, EfRagRepository, and VectorSerializer from rag-api/Data to rag-data/Repositories - Add rag-api-models ProjectReference to rag-data.csproj for model type availability - Delete rag-api/Data folder (no longer needed; all data access is now in rag-data) - This aligns RAG with email-api and other services: all data code in the data project Pattern: rag-api (API logic) → rag-data (repository, EF entities, migrations) Co-Authored-By: Claude Haiku 4.5 --- Apis/cv-matcher-data/CvMatcherDbContext.cs | 4 +-- Apis/cv-matcher-data/MigrationConstants.cs | 11 ++++++++ .../20260507140442_InitialCvMatcherSchema.cs | 13 ++++----- ...260524140335_AddLanguageToCvMatchResult.cs | 5 ++-- .../Migrations/20260528110000_AddAiPrompts.cs | 7 ++--- Apis/cv-search-data/Data/CvSearchDbContext.cs | 4 +-- .../cv-search-data/Data/MigrationConstants.cs | 11 ++++++++ .../20260522093356_AddJobSearchTables.cs | 15 ++++++----- ...24145702_AddLanguageToJobSearchEntities.cs | 9 ++++--- Apis/email-api-data/EmailApiDbContext.cs | 4 +-- Apis/email-api-data/MigrationConstants.cs | 11 ++++++++ .../20260528100000_CreateEmailTemplates.cs | 7 ++--- .../20260528130652_SeedEmailTemplates.cs | 3 ++- Apis/myai-data/Data/MigrationConstants.cs | 11 ++++++++ Apis/myai-data/Data/MyAiDbContext.cs | 4 +-- .../Migrations/20260524145351_AddTemplates.cs | 9 ++++--- ...260527120000_UpdateEmailTemplatesToHtml.cs | 5 ++-- .../20260528120000_DeleteMigratedTemplates.cs | 5 ++-- Apis/rag-data/MigrationConstants.cs | 11 ++++++++ .../20260507140305_InitialRagSchema.cs | 27 ++++++++++--------- Apis/rag-data/RagDbContext.cs | 4 +-- .../Repositories/Contracts/IRagRepository.cs | 0 .../Repositories/EfRagRepository.cs | 1 + .../Repositories/VectorSerializer.cs | 0 Apis/rag-data/rag-data.csproj | 1 + 25 files changed, 125 insertions(+), 57 deletions(-) create mode 100644 Apis/cv-matcher-data/MigrationConstants.cs create mode 100644 Apis/cv-search-data/Data/MigrationConstants.cs create mode 100644 Apis/email-api-data/MigrationConstants.cs create mode 100644 Apis/myai-data/Data/MigrationConstants.cs create mode 100644 Apis/rag-data/MigrationConstants.cs rename Apis/{rag-api/Data => rag-data}/Repositories/Contracts/IRagRepository.cs (100%) rename Apis/{rag-api/Data => rag-data}/Repositories/EfRagRepository.cs (99%) rename Apis/{rag-api/Data => rag-data}/Repositories/VectorSerializer.cs (100%) diff --git a/Apis/cv-matcher-data/CvMatcherDbContext.cs b/Apis/cv-matcher-data/CvMatcherDbContext.cs index fa21448..ab51c35 100644 --- a/Apis/cv-matcher-data/CvMatcherDbContext.cs +++ b/Apis/cv-matcher-data/CvMatcherDbContext.cs @@ -5,8 +5,8 @@ namespace CvMatcher.Data; public sealed class CvMatcherDbContext : DbContext { - public const string SchemaName = "cvMatcher"; - public const string MigrationTableName = "_Migrations"; + public const string SchemaName = MigrationConstants.SchemaName; + public const string MigrationTableName = MigrationConstants.MigrationTableName; public CvMatcherDbContext(DbContextOptions options) : base(options) { diff --git a/Apis/cv-matcher-data/MigrationConstants.cs b/Apis/cv-matcher-data/MigrationConstants.cs new file mode 100644 index 0000000..5c5808b --- /dev/null +++ b/Apis/cv-matcher-data/MigrationConstants.cs @@ -0,0 +1,11 @@ +namespace CvMatcher.Data; + +/// +/// Schema constants used by CvMatcherDbContext and migrations. +/// Centralized to avoid hardcoded strings and ensure consistency. +/// +public static class MigrationConstants +{ + public const string SchemaName = "cvMatcher"; + public const string MigrationTableName = "_Migrations"; +} diff --git a/Apis/cv-matcher-data/Migrations/20260507140442_InitialCvMatcherSchema.cs b/Apis/cv-matcher-data/Migrations/20260507140442_InitialCvMatcherSchema.cs index 9e9c62f..da2a029 100644 --- a/Apis/cv-matcher-data/Migrations/20260507140442_InitialCvMatcherSchema.cs +++ b/Apis/cv-matcher-data/Migrations/20260507140442_InitialCvMatcherSchema.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using CvMatcher.Data; #nullable disable @@ -12,11 +13,11 @@ namespace CvMatcher.Data.Migrations protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.EnsureSchema( - name: "cvMatcher"); + name: MigrationConstants.SchemaName); migrationBuilder.CreateTable( name: "ChatCache", - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, columns: table => new { CacheKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -32,7 +33,7 @@ namespace CvMatcher.Data.Migrations migrationBuilder.CreateTable( name: "Results", - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -49,7 +50,7 @@ namespace CvMatcher.Data.Migrations migrationBuilder.CreateIndex( name: "IX_Results_CvDocumentId_JobDocumentId", - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, table: "Results", columns: new[] { "CvDocumentId", "JobDocumentId" }, unique: true); @@ -60,11 +61,11 @@ namespace CvMatcher.Data.Migrations { migrationBuilder.DropTable( name: "ChatCache", - schema: "cvMatcher"); + schema: MigrationConstants.SchemaName); migrationBuilder.DropTable( name: "Results", - schema: "cvMatcher"); + schema: MigrationConstants.SchemaName); } } } diff --git a/Apis/cv-matcher-data/Migrations/20260524140335_AddLanguageToCvMatchResult.cs b/Apis/cv-matcher-data/Migrations/20260524140335_AddLanguageToCvMatchResult.cs index 0c58014..8124973 100644 --- a/Apis/cv-matcher-data/Migrations/20260524140335_AddLanguageToCvMatchResult.cs +++ b/Apis/cv-matcher-data/Migrations/20260524140335_AddLanguageToCvMatchResult.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using CvMatcher.Data; #nullable disable @@ -12,7 +13,7 @@ namespace CvMatcher.Data.Migrations { migrationBuilder.AddColumn( name: "Language", - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, table: "Results", type: "nvarchar(max)", nullable: false, @@ -24,7 +25,7 @@ namespace CvMatcher.Data.Migrations { migrationBuilder.DropColumn( name: "Language", - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, table: "Results"); } } diff --git a/Apis/cv-matcher-data/Migrations/20260528110000_AddAiPrompts.cs b/Apis/cv-matcher-data/Migrations/20260528110000_AddAiPrompts.cs index 754ee6b..b135730 100644 --- a/Apis/cv-matcher-data/Migrations/20260528110000_AddAiPrompts.cs +++ b/Apis/cv-matcher-data/Migrations/20260528110000_AddAiPrompts.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using CvMatcher.Data; #nullable disable @@ -13,7 +14,7 @@ namespace CvMatcher.Data.Migrations { migrationBuilder.CreateTable( name: "AiPrompts", - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, columns: table => new { Key = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), @@ -28,7 +29,7 @@ namespace CvMatcher.Data.Migrations }); migrationBuilder.InsertData( - schema: "cvMatcher", + schema: MigrationConstants.SchemaName, table: "AiPrompts", columns: ["Key", "Language", "Value", "Description"], values: new object[] @@ -43,7 +44,7 @@ namespace CvMatcher.Data.Migrations /// protected override void Down(MigrationBuilder migrationBuilder) { - migrationBuilder.DropTable(name: "AiPrompts", schema: "cvMatcher"); + migrationBuilder.DropTable(name: "AiPrompts", schema: MigrationConstants.SchemaName); } } } diff --git a/Apis/cv-search-data/Data/CvSearchDbContext.cs b/Apis/cv-search-data/Data/CvSearchDbContext.cs index c170e4a..00837ee 100644 --- a/Apis/cv-search-data/Data/CvSearchDbContext.cs +++ b/Apis/cv-search-data/Data/CvSearchDbContext.cs @@ -5,8 +5,8 @@ namespace CvSearch.Data; public sealed class CvSearchDbContext : DbContext { - public const string SchemaName = "cvSearch"; - public const string MigrationTableName = "_Migrations"; + public const string SchemaName = MigrationConstants.SchemaName; + public const string MigrationTableName = MigrationConstants.MigrationTableName; public CvSearchDbContext(DbContextOptions options) : base(options) { } diff --git a/Apis/cv-search-data/Data/MigrationConstants.cs b/Apis/cv-search-data/Data/MigrationConstants.cs new file mode 100644 index 0000000..1399d8f --- /dev/null +++ b/Apis/cv-search-data/Data/MigrationConstants.cs @@ -0,0 +1,11 @@ +namespace CvSearch.Data; + +/// +/// Schema constants used by CvSearchDbContext and migrations. +/// Centralized to avoid hardcoded strings and ensure consistency. +/// +public static class MigrationConstants +{ + public const string SchemaName = "cvSearch"; + public const string MigrationTableName = "_Migrations"; +} diff --git a/Apis/cv-search-data/Migrations/20260522093356_AddJobSearchTables.cs b/Apis/cv-search-data/Migrations/20260522093356_AddJobSearchTables.cs index d57fc57..b0b9e3e 100644 --- a/Apis/cv-search-data/Migrations/20260522093356_AddJobSearchTables.cs +++ b/Apis/cv-search-data/Migrations/20260522093356_AddJobSearchTables.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using CvSearch.Data; #nullable disable @@ -12,11 +13,11 @@ namespace CvSearch.Data.Migrations protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.EnsureSchema( - name: "cvSearch"); + name: MigrationConstants.SchemaName); migrationBuilder.CreateTable( name: "JobSearchResults", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -36,7 +37,7 @@ namespace CvSearch.Data.Migrations migrationBuilder.CreateTable( name: "JobSearchSessions", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -55,7 +56,7 @@ namespace CvSearch.Data.Migrations migrationBuilder.CreateTable( name: "JobSearchTokens", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -88,15 +89,15 @@ namespace CvSearch.Data.Migrations { migrationBuilder.DropTable( name: "JobSearchResults", - schema: "cvSearch"); + schema: MigrationConstants.SchemaName); migrationBuilder.DropTable( name: "JobSearchSessions", - schema: "cvSearch"); + schema: MigrationConstants.SchemaName); migrationBuilder.DropTable( name: "JobSearchTokens", - schema: "cvSearch"); + schema: MigrationConstants.SchemaName); } } } diff --git a/Apis/cv-search-data/Migrations/20260524145702_AddLanguageToJobSearchEntities.cs b/Apis/cv-search-data/Migrations/20260524145702_AddLanguageToJobSearchEntities.cs index ef76ef8..2cebb32 100644 --- a/Apis/cv-search-data/Migrations/20260524145702_AddLanguageToJobSearchEntities.cs +++ b/Apis/cv-search-data/Migrations/20260524145702_AddLanguageToJobSearchEntities.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using CvSearch.Data; #nullable disable @@ -12,7 +13,7 @@ namespace CvSearch.Data.Migrations { migrationBuilder.AddColumn( name: "Language", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, table: "JobSearchTokens", type: "nvarchar(8)", maxLength: 8, @@ -21,7 +22,7 @@ namespace CvSearch.Data.Migrations migrationBuilder.AddColumn( name: "Language", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, table: "JobSearchSessions", type: "nvarchar(8)", maxLength: 8, @@ -34,12 +35,12 @@ namespace CvSearch.Data.Migrations { migrationBuilder.DropColumn( name: "Language", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, table: "JobSearchTokens"); migrationBuilder.DropColumn( name: "Language", - schema: "cvSearch", + schema: MigrationConstants.SchemaName, table: "JobSearchSessions"); } } diff --git a/Apis/email-api-data/EmailApiDbContext.cs b/Apis/email-api-data/EmailApiDbContext.cs index ec3d743..2d126be 100644 --- a/Apis/email-api-data/EmailApiDbContext.cs +++ b/Apis/email-api-data/EmailApiDbContext.cs @@ -5,8 +5,8 @@ namespace EmailApi.Data; public sealed class EmailApiDbContext : DbContext { - public const string SchemaName = "emailApi"; - public const string MigrationTableName = "_Migrations"; + public const string SchemaName = MigrationConstants.SchemaName; + public const string MigrationTableName = MigrationConstants.MigrationTableName; public EmailApiDbContext(DbContextOptions options) : base(options) { } diff --git a/Apis/email-api-data/MigrationConstants.cs b/Apis/email-api-data/MigrationConstants.cs new file mode 100644 index 0000000..82d8be2 --- /dev/null +++ b/Apis/email-api-data/MigrationConstants.cs @@ -0,0 +1,11 @@ +namespace EmailApi.Data; + +/// +/// Schema constants used by EmailApiDbContext and migrations. +/// Centralized to avoid hardcoded strings and ensure consistency. +/// +public static class MigrationConstants +{ + public const string SchemaName = "emailApi"; + public const string MigrationTableName = "_Migrations"; +} diff --git a/Apis/email-api-data/Migrations/20260528100000_CreateEmailTemplates.cs b/Apis/email-api-data/Migrations/20260528100000_CreateEmailTemplates.cs index 82fc2ee..3d77d09 100644 --- a/Apis/email-api-data/Migrations/20260528100000_CreateEmailTemplates.cs +++ b/Apis/email-api-data/Migrations/20260528100000_CreateEmailTemplates.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using EmailApi.Data; #nullable disable @@ -11,11 +12,11 @@ namespace EmailApi.Data.Migrations /// protected override void Up(MigrationBuilder migrationBuilder) { - migrationBuilder.EnsureSchema(name: "emailApi"); + migrationBuilder.EnsureSchema(name: MigrationConstants.SchemaName); migrationBuilder.CreateTable( name: "EmailTemplates", - schema: "emailApi", + schema: MigrationConstants.SchemaName, columns: table => new { Key = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), @@ -39,7 +40,7 @@ namespace EmailApi.Data.Migrations => m.InsertData("EmailTemplates", ["Key", "Language", "Value", "Description", "OperatorCopy"], [key, lang, value, description, operatorCopy], - "emailApi"); + MigrationConstants.SchemaName); // ── HTML shell (no operator copy — these are layout fragments, not addressable emails) ── Row("email.html-shell.start", "*", diff --git a/Apis/email-api-data/Migrations/20260528130652_SeedEmailTemplates.cs b/Apis/email-api-data/Migrations/20260528130652_SeedEmailTemplates.cs index fe8ce5d..fd44df4 100644 --- a/Apis/email-api-data/Migrations/20260528130652_SeedEmailTemplates.cs +++ b/Apis/email-api-data/Migrations/20260528130652_SeedEmailTemplates.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using EmailApi.Data; #nullable disable @@ -31,7 +32,7 @@ namespace EmailApi.Data.Migrations => m.InsertData("EmailTemplates", ["Key", "Language", "Value", "Description", "OperatorCopy"], [key, lang, value, description, operatorCopy], - "emailApi"); + MigrationConstants.SchemaName); // ── HTML shell (no operator copy — these are layout fragments, not addressable emails) ── Row("email.html-shell.start", "*", diff --git a/Apis/myai-data/Data/MigrationConstants.cs b/Apis/myai-data/Data/MigrationConstants.cs new file mode 100644 index 0000000..6fa140c --- /dev/null +++ b/Apis/myai-data/Data/MigrationConstants.cs @@ -0,0 +1,11 @@ +namespace MyAi.Data; + +/// +/// Schema constants used by MyAiDbContext and migrations. +/// Centralized to avoid hardcoded strings and ensure consistency. +/// +public static class MigrationConstants +{ + public const string SchemaName = "myAi"; + public const string MigrationTableName = "_Migrations"; +} diff --git a/Apis/myai-data/Data/MyAiDbContext.cs b/Apis/myai-data/Data/MyAiDbContext.cs index 2f35d02..eded870 100644 --- a/Apis/myai-data/Data/MyAiDbContext.cs +++ b/Apis/myai-data/Data/MyAiDbContext.cs @@ -5,8 +5,8 @@ namespace MyAi.Data; public sealed class MyAiDbContext : DbContext { - public const string SchemaName = "myAi"; - public const string MigrationTableName = "_Migrations"; + public const string SchemaName = MigrationConstants.SchemaName; + public const string MigrationTableName = MigrationConstants.MigrationTableName; public MyAiDbContext(DbContextOptions options) : base(options) { } diff --git a/Apis/myai-data/Migrations/20260524145351_AddTemplates.cs b/Apis/myai-data/Migrations/20260524145351_AddTemplates.cs index 36f47f1..7099ee3 100644 --- a/Apis/myai-data/Migrations/20260524145351_AddTemplates.cs +++ b/Apis/myai-data/Migrations/20260524145351_AddTemplates.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using MyAi.Data; #nullable disable @@ -12,11 +13,11 @@ namespace MyAi.Data.Migrations protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.EnsureSchema( - name: "myAi"); + name: MigrationConstants.SchemaName); migrationBuilder.CreateTable( name: "Templates", - schema: "myAi", + schema: MigrationConstants.SchemaName, columns: table => new { Key = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), @@ -36,7 +37,7 @@ namespace MyAi.Data.Migrations private static void Seed(MigrationBuilder m) { void Row(string key, string lang, string value, string description = "") - => m.InsertData("Templates", ["Key", "Language", "Value", "Description"], [key, lang, value, description], "myAi"); + => m.InsertData("Templates", ["Key", "Language", "Value", "Description"], [key, lang, value, description], MigrationConstants.SchemaName); // Match result email — subject Row("email.match.subject", "en", "MyAi.ro CV Match: {{score}}% - {{jobLabel}}", "Subject for the CV match result email"); @@ -107,7 +108,7 @@ namespace MyAi.Data.Migrations { migrationBuilder.DropTable( name: "Templates", - schema: "myAi"); + schema: MigrationConstants.SchemaName); } } } diff --git a/Apis/myai-data/Migrations/20260527120000_UpdateEmailTemplatesToHtml.cs b/Apis/myai-data/Migrations/20260527120000_UpdateEmailTemplatesToHtml.cs index 8568a2d..38352fe 100644 --- a/Apis/myai-data/Migrations/20260527120000_UpdateEmailTemplatesToHtml.cs +++ b/Apis/myai-data/Migrations/20260527120000_UpdateEmailTemplatesToHtml.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using MyAi.Data; #nullable disable @@ -12,7 +13,7 @@ namespace MyAi.Data.Migrations { void Update(string key, string lang, string value) => migrationBuilder.UpdateData("Templates", ["Key", "Language"], [key, lang], - ["Value"], [value], "myAi"); + ["Value"], [value], MigrationConstants.SchemaName); // email.match.body — en Update("email.match.body", "en", @@ -120,7 +121,7 @@ namespace MyAi.Data.Migrations { void Update(string key, string lang, string value) => migrationBuilder.UpdateData("Templates", ["Key", "Language"], [key, lang], - ["Value"], [value], "myAi"); + ["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}}"); diff --git a/Apis/myai-data/Migrations/20260528120000_DeleteMigratedTemplates.cs b/Apis/myai-data/Migrations/20260528120000_DeleteMigratedTemplates.cs index 426c592..8ecf6f1 100644 --- a/Apis/myai-data/Migrations/20260528120000_DeleteMigratedTemplates.cs +++ b/Apis/myai-data/Migrations/20260528120000_DeleteMigratedTemplates.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using MyAi.Data; #nullable disable @@ -10,8 +11,8 @@ namespace MyAi.Data.Migrations /// protected override void Up(MigrationBuilder migrationBuilder) { - migrationBuilder.Sql("DELETE FROM [myAi].[Templates] WHERE [Key] LIKE 'email.%'"); - migrationBuilder.Sql("DELETE FROM [myAi].[Templates] WHERE [Key] LIKE 'ai.%'"); + migrationBuilder.Sql($"DELETE FROM [{MigrationConstants.SchemaName}].[Templates] WHERE [Key] LIKE 'email.%'"); + migrationBuilder.Sql($"DELETE FROM [{MigrationConstants.SchemaName}].[Templates] WHERE [Key] LIKE 'ai.%'"); } /// diff --git a/Apis/rag-data/MigrationConstants.cs b/Apis/rag-data/MigrationConstants.cs new file mode 100644 index 0000000..e77e4f9 --- /dev/null +++ b/Apis/rag-data/MigrationConstants.cs @@ -0,0 +1,11 @@ +namespace Rag.Data; + +/// +/// Schema constants used by RagDbContext and migrations. +/// Centralized to avoid hardcoded strings and ensure consistency. +/// +public static class MigrationConstants +{ + public const string SchemaName = "rag"; + public const string MigrationTableName = "_Migrations"; +} diff --git a/Apis/rag-data/Migrations/20260507140305_InitialRagSchema.cs b/Apis/rag-data/Migrations/20260507140305_InitialRagSchema.cs index 48b6c3e..05a38ac 100644 --- a/Apis/rag-data/Migrations/20260507140305_InitialRagSchema.cs +++ b/Apis/rag-data/Migrations/20260507140305_InitialRagSchema.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using Rag.Data; #nullable disable @@ -12,11 +13,11 @@ namespace Rag.Data.Migrations protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.EnsureSchema( - name: "rag"); + name: MigrationConstants.SchemaName); migrationBuilder.CreateTable( name: "ChatCompletionCache", - schema: "rag", + schema: MigrationConstants.SchemaName, columns: table => new { CacheKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -32,7 +33,7 @@ namespace Rag.Data.Migrations migrationBuilder.CreateTable( name: "Documents", - schema: "rag", + schema: MigrationConstants.SchemaName, columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -52,7 +53,7 @@ namespace Rag.Data.Migrations migrationBuilder.CreateTable( name: "EmbeddingCache", - schema: "rag", + schema: MigrationConstants.SchemaName, columns: table => new { CacheKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -68,7 +69,7 @@ namespace Rag.Data.Migrations migrationBuilder.CreateTable( name: "Chunks", - schema: "rag", + schema: MigrationConstants.SchemaName, columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -91,25 +92,25 @@ namespace Rag.Data.Migrations migrationBuilder.CreateIndex( name: "IX_Chunks_DocumentId", - schema: "rag", + schema: MigrationConstants.SchemaName, table: "Chunks", column: "DocumentId"); migrationBuilder.CreateIndex( name: "IX_Documents_DocumentType", - schema: "rag", + schema: MigrationConstants.SchemaName, table: "Documents", column: "DocumentType"); migrationBuilder.CreateIndex( name: "IX_Documents_TextHash", - schema: "rag", + schema: MigrationConstants.SchemaName, table: "Documents", column: "TextHash"); migrationBuilder.CreateIndex( name: "IX_EmbeddingCache_TextHash", - schema: "rag", + schema: MigrationConstants.SchemaName, table: "EmbeddingCache", column: "TextHash"); } @@ -119,19 +120,19 @@ namespace Rag.Data.Migrations { migrationBuilder.DropTable( name: "ChatCompletionCache", - schema: "rag"); + schema: MigrationConstants.SchemaName); migrationBuilder.DropTable( name: "Chunks", - schema: "rag"); + schema: MigrationConstants.SchemaName); migrationBuilder.DropTable( name: "EmbeddingCache", - schema: "rag"); + schema: MigrationConstants.SchemaName); migrationBuilder.DropTable( name: "Documents", - schema: "rag"); + schema: MigrationConstants.SchemaName); } } } diff --git a/Apis/rag-data/RagDbContext.cs b/Apis/rag-data/RagDbContext.cs index 1825d11..04b1e9f 100644 --- a/Apis/rag-data/RagDbContext.cs +++ b/Apis/rag-data/RagDbContext.cs @@ -5,8 +5,8 @@ namespace Rag.Data; public sealed class RagDbContext : DbContext { - public const string SchemaName = "rag"; - public const string MigrationTableName = "_Migrations"; + public const string SchemaName = MigrationConstants.SchemaName; + public const string MigrationTableName = MigrationConstants.MigrationTableName; public RagDbContext(DbContextOptions options) : base(options) { diff --git a/Apis/rag-api/Data/Repositories/Contracts/IRagRepository.cs b/Apis/rag-data/Repositories/Contracts/IRagRepository.cs similarity index 100% rename from Apis/rag-api/Data/Repositories/Contracts/IRagRepository.cs rename to Apis/rag-data/Repositories/Contracts/IRagRepository.cs diff --git a/Apis/rag-api/Data/Repositories/EfRagRepository.cs b/Apis/rag-data/Repositories/EfRagRepository.cs similarity index 99% rename from Apis/rag-api/Data/Repositories/EfRagRepository.cs rename to Apis/rag-data/Repositories/EfRagRepository.cs index e644599..c00ea5f 100644 --- a/Apis/rag-api/Data/Repositories/EfRagRepository.cs +++ b/Apis/rag-data/Repositories/EfRagRepository.cs @@ -1,6 +1,7 @@ using Rag.Data; using Rag.Data.Entities; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; using Rag.Data.Repositories.Contracts; using Rag.Models; diff --git a/Apis/rag-api/Data/Repositories/VectorSerializer.cs b/Apis/rag-data/Repositories/VectorSerializer.cs similarity index 100% rename from Apis/rag-api/Data/Repositories/VectorSerializer.cs rename to Apis/rag-data/Repositories/VectorSerializer.cs diff --git a/Apis/rag-data/rag-data.csproj b/Apis/rag-data/rag-data.csproj index 207d81d..ee8bc1b 100644 --- a/Apis/rag-data/rag-data.csproj +++ b/Apis/rag-data/rag-data.csproj @@ -18,6 +18,7 @@ +