Разбить модули Deal.Modules.* по назначению

Application проектов Discovery, Kanban, Pipeline, Settings, Tenants
разделён на Abstractions/Exceptions/Extensions/Models/Registrars/Services;
namespace приведён к путям, using потребителей мигрированы и
дедуплицированы (169 файлов), cref/FQN обновлены.
This commit is contained in:
Rustam Khalimov
2026-09-11 13:18:14 +03:00
parent 31c434ed93
commit cd0b3b606b
356 changed files with 14436 additions and 12906 deletions
+7 -2
View File
@@ -1,8 +1,13 @@
using Deal.Api.Events; using Deal.Api.Events;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
namespace Deal.Api; namespace Deal.Api;
@@ -1,4 +1,8 @@
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Configuration; namespace Deal.Api.Configuration;
@@ -1,4 +1,8 @@
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Configuration; namespace Deal.Api.Configuration;
@@ -1,7 +1,9 @@
using System.Text.Json; using System.Text.Json;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
+4 -1
View File
@@ -1,7 +1,10 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Api.Middleware; using Deal.Api.Middleware;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
// Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасом. // Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасом.
using CookieOptions = Deal.Api.Configuration.CookieOptions; using CookieOptions = Deal.Api.Configuration.CookieOptions;
@@ -3,9 +3,16 @@ using Deal.Api.Endpoints.RequestModels;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
+12 -3
View File
@@ -4,11 +4,20 @@ using Deal.Api.Http;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,9 +1,16 @@
using System.Text.Json; using System.Text.Json;
using Deal.Api.Endpoints.RequestModels; using Deal.Api.Endpoints.RequestModels;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -3,10 +3,16 @@ using Deal.Api.Endpoints.RequestModels;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Settings.Application; using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Telegram.Application; using Deal.Modules.Telegram.Application;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,8 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
+4 -1
View File
@@ -1,6 +1,9 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
+3 -1
View File
@@ -1,8 +1,10 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,9 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,9 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,7 +1,10 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Api.Middleware; using Deal.Api.Middleware;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using AspNetCoreCookieOptions = Microsoft.AspNetCore.Http.CookieOptions; using AspNetCoreCookieOptions = Microsoft.AspNetCore.Http.CookieOptions;
// Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасами. // Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасами.
@@ -1,6 +1,9 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,9 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,8 +1,11 @@
using Deal.Api.Endpoints.RequestModels; using Deal.Api.Endpoints.RequestModels;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Api.Telegram; using Deal.Api.Telegram;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,9 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using CookieOptions = Deal.Api.Configuration.CookieOptions; using CookieOptions = Deal.Api.Configuration.CookieOptions;
@@ -1,7 +1,9 @@
using Deal.Api.Endpoints.RequestModels; using Deal.Api.Endpoints.RequestModels;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,8 @@
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,9 +1,15 @@
using System.Text.Json; using System.Text.Json;
using Deal.Api; using Deal.Api;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -5,7 +5,11 @@ using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Telegram.Application; using Deal.Modules.Telegram.Application;
using Deal.Modules.Telegram.Application.Models; using Deal.Modules.Telegram.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Endpoints; namespace Deal.Api.Endpoints;
@@ -1,6 +1,9 @@
using Deal.Api.Events; using Deal.Api.Events;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
@@ -1,5 +1,9 @@
using Deal.Api.Configuration; using Deal.Api.Configuration;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
@@ -1,6 +1,14 @@
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Tenants.Application; using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
@@ -1,8 +1,14 @@
using Deal.Infrastructure.Integrations; using Deal.Infrastructure.Integrations;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
@@ -1,4 +1,8 @@
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
@@ -1,9 +1,18 @@
using Deal.Api.Events; using Deal.Api.Events;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Tenants.Application; using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Tenancy; using Deal.Infrastructure.Tenancy;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Hosting; namespace Deal.Api.Hosting;
+4 -1
View File
@@ -1,5 +1,8 @@
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Deal.Api.Http; namespace Deal.Api.Http;
+5 -1
View File
@@ -1,5 +1,9 @@
using Deal.Api.Configuration; using Deal.Api.Configuration;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Http; namespace Deal.Api.Http;
@@ -1,5 +1,9 @@
using System.Threading.RateLimiting; using System.Threading.RateLimiting;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Deal.Api.Http; namespace Deal.Api.Http;
@@ -1,6 +1,10 @@
using Deal.Api.Configuration; using Deal.Api.Configuration;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
// Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасом. // Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасом.
using OperatorCookieOptions = Deal.Api.Configuration.OperatorCookieOptions; using OperatorCookieOptions = Deal.Api.Configuration.OperatorCookieOptions;
@@ -1,6 +1,10 @@
using Deal.Api.Configuration; using Deal.Api.Configuration;
using Deal.Api.Http; using Deal.Api.Http;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
// Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасом. // Имя конфигурационного типа совпадает с Microsoft.AspNetCore.Http.CookieOptions — фиксируем алиасом.
@@ -1,9 +1,18 @@
using Deal.Infrastructure.Persistence; using Deal.Infrastructure.Persistence;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
+7 -2
View File
@@ -1,9 +1,14 @@
using Deal.Api.Events; using Deal.Api.Events;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
namespace Deal.Api; namespace Deal.Api;
+23 -5
View File
@@ -18,13 +18,31 @@ using Deal.Infrastructure.Integrations;
using Deal.Infrastructure.Integrations.Storage; using Deal.Infrastructure.Integrations.Storage;
using Deal.Infrastructure.Persistence; using Deal.Infrastructure.Persistence;
using Deal.Infrastructure.Services; using Deal.Infrastructure.Services;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Kanban.Application; using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Settings.Application; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Telegram.Application; using Deal.Modules.Telegram.Application;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.AspNetCore.Server.Kestrel.Core;
+4 -1
View File
@@ -1,4 +1,7 @@
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Api; namespace Deal.Api;
@@ -2,13 +2,20 @@ using System.Text.Json;
using Deal.Api.Events; using Deal.Api.Events;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Grpc.Telegram; using Deal.Grpc.Telegram;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Settings.Application; using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Telegram.Application; using Deal.Modules.Telegram.Application;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Grpc.Core; using Grpc.Core;
@@ -1,6 +1,8 @@
using System.Text.Json; using System.Text.Json;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Api.Telegram; namespace Deal.Api.Telegram;
@@ -1,8 +1,10 @@
using System.Text.Json; using System.Text.Json;
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Telegram.Application; using Deal.Modules.Telegram.Application;
using Deal.Modules.Telegram.Application.Models; using Deal.Modules.Telegram.Application.Models;
@@ -1,7 +1,9 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Infrastructure.Integrations; namespace Deal.Infrastructure.Integrations;
@@ -1,7 +1,9 @@
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using Deal.Grpc.Ai; using Deal.Grpc.Ai;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Infrastructure.Integrations; namespace Deal.Infrastructure.Integrations;
@@ -1,7 +1,10 @@
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -1,7 +1,10 @@
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -1,6 +1,9 @@
using System.Globalization; using System.Globalization;
using System.Text.Json; using System.Text.Json;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace Deal.Infrastructure.Integrations; namespace Deal.Infrastructure.Integrations;
@@ -1,7 +1,10 @@
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Grpc.Ai; using Deal.Grpc.Ai;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Grpc.Core; using Grpc.Core;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -2,11 +2,20 @@ using System.Text.Json;
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Grpc.Ml; using Deal.Grpc.Ml;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Settings.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Grpc.Core; using Grpc.Core;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -1,7 +1,9 @@
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Pipeline.Application.Parse; using Deal.Modules.Pipeline.Application.Parse;
namespace Deal.Infrastructure.Integrations; namespace Deal.Infrastructure.Integrations;
@@ -5,10 +5,15 @@ using Deal.Contracts.Integrations.Models;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Settings.Application; using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
// Алиас: статический класс ColumnRules лежит в одноимённом пространстве имён (см. CardsService) — // Алиас: статический класс ColumnRules лежит в одноимённом пространстве имён (см. CardsService) —
// внутри Deal.Modules.Kanban.Application имя ColumnRules резолвится в пространство. // внутри Deal.Modules.Kanban.Application имя ColumnRules резолвится в пространство.
using KanbanColumnRules = Deal.Modules.Kanban.Application.ColumnRules.ColumnRules; using KanbanColumnRules = Deal.Modules.Kanban.Application.ColumnRules.ColumnRules;
@@ -1,9 +1,15 @@
using System.Text.Json; using System.Text.Json;
using Deal.Contracts.Integrations; using Deal.Contracts.Integrations;
using Deal.Contracts.Integrations.Models; using Deal.Contracts.Integrations.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Settings.Application; using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Infrastructure.Integrations; namespace Deal.Infrastructure.Integrations;
@@ -1,5 +1,9 @@
using System.Security.Cryptography; using System.Security.Cryptography;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
namespace Deal.Infrastructure.Integrations; namespace Deal.Infrastructure.Integrations;
@@ -1,10 +1,15 @@
using System.Text.Json; using System.Text.Json;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using Deal.Grpc.Ai; using Deal.Grpc.Ai;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Tenants.Application; using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Observability; using Deal.SharedKernel.Observability;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
@@ -6,7 +6,7 @@ namespace Deal.Infrastructure.Persistence.Entities;
/// <remarks> /// <remarks>
/// Единое KV-хранилище всего SaaS-контура (ТЗ §4.1/§8.1): значения задаёт оператор, видят все /// Единое KV-хранилище всего SaaS-контура (ТЗ §4.1/§8.1): значения задаёт оператор, видят все
/// тенанты. Секреты хранятся зашифрованными (префикс <c>enc:</c>), формат значения определяет ключ /// тенанты. Секреты хранятся зашифрованными (префикс <c>enc:</c>), формат значения определяет ключ
/// (<see cref="Deal.Modules.Settings.Application.GlobalSettingsKeys"/>). /// (<see cref="Deal.Modules.Settings.Application.Models.GlobalSettingsKeys"/>).
/// </remarks> /// </remarks>
public sealed class GlobalSettingEntity public sealed class GlobalSettingEntity
{ {
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,11 @@
using System.Text.Json; using System.Text.Json;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,11 @@
using System.Text.Json; using System.Text.Json;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,11 @@
using System.Text.Json; using System.Text.Json;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,11 @@
using System.Text.Json; using System.Text.Json;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,11 @@
using System.Text.Json; using System.Text.Json;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,8 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,10 @@
using System.Text.Json; using System.Text.Json;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -3,8 +3,11 @@ using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -2,8 +2,11 @@ using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -3,8 +3,11 @@ using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -3,8 +3,11 @@ using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,13 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models; using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -2,7 +2,11 @@ using System.Data;
using System.Data.Common; using System.Data.Common;
using System.Globalization; using System.Globalization;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,8 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models; using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,7 +1,10 @@
using System.Linq.Expressions; using System.Linq.Expressions;
using Deal.Infrastructure.Persistence.Entities; using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Persistence.Repositories; namespace Deal.Infrastructure.Persistence.Repositories;
@@ -1,6 +1,9 @@
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
using Deal.Modules.Settings.Application; using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
namespace Deal.Infrastructure.Security; namespace Deal.Infrastructure.Security;
@@ -8,13 +8,31 @@ using Deal.Infrastructure.Tenancy;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Kanban.Application; using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Pipeline.Application; using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Settings.Application; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Deal.Modules.Pipeline.Application.Abstractions;
using Deal.Modules.Pipeline.Application.Models;
using Deal.Modules.Pipeline.Application.Registrars;
using Deal.Modules.Pipeline.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Deal.Modules.Settings.Application.Models;
using Deal.Modules.Settings.Application.Registrars;
using Deal.Modules.Settings.Application.Services;
using Deal.Modules.Telegram.Application; using Deal.Modules.Telegram.Application;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -1,8 +1,11 @@
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
namespace Deal.Infrastructure.Services; namespace Deal.Infrastructure.Services;
@@ -4,8 +4,11 @@ using Deal.Infrastructure.Persistence.Entities;
using Deal.Modules.Cards.Application.Abstractions; using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos; using Deal.Modules.Cards.Application.Dtos;
using Deal.Modules.Cards.Application.Models; using Deal.Modules.Cards.Application.Models;
using Deal.Modules.Kanban.Application; using Deal.Modules.Kanban.Application.Abstractions;
using Deal.Modules.Kanban.Application.Extensions;
using Deal.Modules.Kanban.Application.Models; using Deal.Modules.Kanban.Application.Models;
using Deal.Modules.Kanban.Application.Registrars;
using Deal.Modules.Kanban.Application.Services;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Deal.Infrastructure.Tenancy; namespace Deal.Infrastructure.Tenancy;
@@ -2,7 +2,11 @@ using System.Collections.Concurrent;
using Deal.Infrastructure.Data; using Deal.Infrastructure.Data;
using Deal.Infrastructure.Migrations; using Deal.Infrastructure.Migrations;
using Deal.Infrastructure.Persistence; using Deal.Infrastructure.Persistence;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Npgsql; using Npgsql;
@@ -1,7 +1,10 @@
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Diagnostics; using System.Diagnostics;
using Deal.Modules.Tenants.Application; using Deal.Modules.Tenants.Application.Abstractions;
using Deal.Modules.Tenants.Application.Extensions;
using Deal.Modules.Tenants.Application.Models; using Deal.Modules.Tenants.Application.Models;
using Deal.Modules.Tenants.Application.Registrars;
using Deal.Modules.Tenants.Application.Services;
using Deal.SharedKernel.Tenants; using Deal.SharedKernel.Tenants;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Abstractions;
/// <summary> /// <summary>
/// Порт «пейсера» Discovery: паузы между сетевыми действиями (план Task 18, Ruling 10). /// Порт «пейсера» Discovery: паузы между сетевыми действиями (план Task 18, Ruling 10).
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Abstractions;
/// <summary> /// <summary>
/// Счётчик ошибок поиска одного ключа по задачам (discovery_worker._search_errors L82, план Task 18). /// Счётчик ошибок поиска одного ключа по задачам (discovery_worker._search_errors L82, план Task 18).
@@ -1,6 +1,10 @@
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application; namespace Deal.Modules.Discovery.Application.Abstractions;
/// <summary> /// <summary>
/// Порт хранилища Discovery: таблицы DiscTasks/DiscCandidates/DiscBlacklist/DiscLog схемы тенанта (Ruling 9, Task 17). /// Порт хранилища Discovery: таблицы DiscTasks/DiscCandidates/DiscBlacklist/DiscLog схемы тенанта (Ruling 9, Task 17).
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Exceptions;
/// <summary> /// <summary>
/// Доменная ошибка запроса Discovery — 400-семантика (аналог ValueError discovery.py). /// Доменная ошибка запроса Discovery — 400-семантика (аналог ValueError discovery.py).
@@ -1,6 +1,10 @@
using Deal.Modules.Discovery.Application.Models; using Deal.Modules.Discovery.Application.Models;
using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application; namespace Deal.Modules.Discovery.Application.Extensions;
internal static class DiscoveryTaskPatchExtensions internal static class DiscoveryTaskPatchExtensions
{ {
@@ -6,21 +6,21 @@ namespace Deal.Modules.Discovery.Application.Models;
/// <remarks> /// <remarks>
/// Поля 1:1 с _candidate_view discovery.py L140158 и строкой disc_candidates (db.py L159176). marks/topics — /// Поля 1:1 с _candidate_view discovery.py L140158 и строкой disc_candidates (db.py L159176). marks/topics —
/// JSON-колонки, наружу всегда списки (marks — строки-метки, topics — элементы <see cref="DiscoveryTopicDto"/> для /// JSON-колонки, наружу всегда списки (marks — строки-метки, topics — элементы <see cref="DiscoveryTopicDto"/> для
/// форумов). Статус — <see cref="Deal.Modules.Discovery.Application.DiscoveryCandidateStatuses"/>; переводы в /// форумов). Статус — <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryCandidateStatuses"/>; переводы в
/// joined/rejected — только через mark_joined/mark_rejected. /// joined/rejected — только через mark_joined/mark_rejected.
/// </remarks> /// </remarks>
/// <param name="DialogId">Подписанный id источника (первичный ключ кандидата; как Dialogs.Id).</param> /// <param name="DialogId">Подписанный id источника (первичный ключ кандидата; как Dialogs.Id).</param>
/// <param name="TaskId">Id задачи поиска, которой принадлежит кандидат.</param> /// <param name="TaskId">Id задачи поиска, которой принадлежит кандидат.</param>
/// <param name="Name">Отображаемое имя источника (пусто → DialogId).</param> /// <param name="Name">Отображаемое имя источника (пусто → DialogId).</param>
/// <param name="Username">Username (handle) источника; пуст, если нет публичного username.</param> /// <param name="Username">Username (handle) источника; пуст, если нет публичного username.</param>
/// <param name="Kind">Тип источника: channel|group|forum (см. <see cref="Deal.Modules.Discovery.Application.DiscoveryCandidateKinds"/>).</param> /// <param name="Kind">Тип источника: channel|group|forum (см. <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryCandidateKinds"/>).</param>
/// <param name="Hue">Цвет источника из палитры DIALOG_HUES (hex «#rrggbb»; дефолт «#666»).</param> /// <param name="Hue">Цвет источника из палитры DIALOG_HUES (hex «#rrggbb»; дефолт «#666»).</param>
/// <param name="Participants">Число участников (после discovery_info); null — неизвестно.</param> /// <param name="Participants">Число участников (после discovery_info); null — неизвестно.</param>
/// <param name="LangRu">Язык источника: true — русский, false — не русский, null — не определён.</param> /// <param name="LangRu">Язык источника: true — русский, false — не русский, null — не определён.</param>
/// <param name="Marks">Метки оценки («закрытая группа (история скрыта)», «мало сообщений», …).</param> /// <param name="Marks">Метки оценки («закрытая группа (история скрыта)», «мало сообщений», …).</param>
/// <param name="Topics">Оценка тем форума (kind=forum; для каналов/групп пуст).</param> /// <param name="Topics">Оценка тем форума (kind=forum; для каналов/групп пуст).</param>
/// <param name="FitRatio">Доля подходящих сообщений оценки (0..1); null — контент не оценён.</param> /// <param name="FitRatio">Доля подходящих сообщений оценки (0..1); null — контент не оценён.</param>
/// <param name="Status">Статус кандидата (см. <see cref="Deal.Modules.Discovery.Application.DiscoveryCandidateStatuses"/>).</param> /// <param name="Status">Статус кандидата (см. <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryCandidateStatuses"/>).</param>
/// <param name="AutoJoined">Вступили автоматически (воркером); false — вручную (join из UI).</param> /// <param name="AutoJoined">Вступили автоматически (воркером); false — вручную (join из UI).</param>
/// <param name="JoinFailures">Неудачные авто-вступления подряд (3 → кандидат удаляется, Task 18).</param> /// <param name="JoinFailures">Неудачные авто-вступления подряд (3 → кандидат удаляется, Task 18).</param>
/// <param name="CreatedAt">Время добавления, epoch-ms.</param> /// <param name="CreatedAt">Время добавления, epoch-ms.</param>
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Типы источников-кандидатов Discovery (колонка DiscCandidates.Kind; api-map §4.8, discovery_worker _kind_code). /// Типы источников-кандидатов Discovery (колонка DiscCandidates.Kind; api-map §4.8, discovery_worker _kind_code).
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Статусы кандидата Discovery (колонка DiscCandidates.Status; discovery.py L171, api-map §4.8). /// Статусы кандидата Discovery (колонка DiscCandidates.Status; discovery.py L171, api-map §4.8).
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Счётчики прогресса задачи поиска (колонки DiscTasks Found/Evaluated/Joined/Rejected; discovery.py L359368). /// Счётчики прогресса задачи поиска (колонки DiscTasks Found/Evaluated/Joined/Rejected; discovery.py L359368).
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Агрегат оценки выборки сообщений (python evaluate_sample L197226: fit_count/total/fit_ratio/per_message). /// Агрегат оценки выборки сообщений (python evaluate_sample L197226: fit_count/total/fit_ratio/per_message).
@@ -1,6 +1,11 @@
using System.Security.Cryptography; using System.Security.Cryptography;
using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application; namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Префиксы коротких id модуля Discovery и их генерация (прототип store.uid в discovery.py). /// Префиксы коротких id модуля Discovery и их генерация (прототип store.uid в discovery.py).
@@ -5,12 +5,12 @@ namespace Deal.Modules.Discovery.Application.Models;
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Поля 1:1 с _log_view discovery.py L170177 и строкой disc_log (db.py L189195). Событие — каталог /// Поля 1:1 с _log_view discovery.py L170177 и строкой disc_log (db.py L189195). Событие — каталог
/// <see cref="Deal.Modules.Discovery.Application.DiscoveryLogEvents"/> (search|skip|review|join_auto|join_manual| /// <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryLogEvents"/> (search|skip|review|join_auto|join_manual|
/// reject|flood|error|done|…). Список — последние события задачи, новые сверху (ORDER BY created_at DESC). /// reject|flood|error|done|…). Список — последние события задачи, новые сверху (ORDER BY created_at DESC).
/// </remarks> /// </remarks>
/// <param name="Id">Короткий id записи (префикс <c>dl_</c>).</param> /// <param name="Id">Короткий id записи (префикс <c>dl_</c>).</param>
/// <param name="TaskId">Id задачи поиска.</param> /// <param name="TaskId">Id задачи поиска.</param>
/// <param name="Event">Событие (см. <see cref="Deal.Modules.Discovery.Application.DiscoveryLogEvents"/>).</param> /// <param name="Event">Событие (см. <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryLogEvents"/>).</param>
/// <param name="Text">Текст/детали события (русская строка 1:1 с прототипом).</param> /// <param name="Text">Текст/детали события (русская строка 1:1 с прототипом).</param>
/// <param name="CreatedAt">Время события, epoch-ms.</param> /// <param name="CreatedAt">Время события, epoch-ms.</param>
public sealed record DiscoveryLogDto( public sealed record DiscoveryLogDto(
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// События лога задачи Discovery (колонка DiscLog.Event; discovery.py L187188, api-map §3.8). /// События лога задачи Discovery (колонка DiscLog.Event; discovery.py L187188, api-map §3.8).
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Вердикт фита одного сообщения (python evaluate_message L174194). /// Вердикт фита одного сообщения (python evaluate_message L174194).
@@ -5,7 +5,7 @@ namespace Deal.Modules.Discovery.Application.Models;
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Поля 1:1 с _task_view discovery.py L116137 и строкой disc_tasks (db.py L136156). JSON-поле keywords /// Поля 1:1 с _task_view discovery.py L116137 и строкой disc_tasks (db.py L136156). JSON-поле keywords
/// наружу всегда список строк; статус — <see cref="Deal.Modules.Discovery.Application.DiscoveryTaskStatuses"/>. /// наружу всегда список строк; статус — <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryTaskStatuses"/>.
/// createdAt/updatedAt — epoch-ms (времена хранятся UTC, на границе переводятся в ms — конвенция проекта). /// createdAt/updatedAt — epoch-ms (времена хранятся UTC, на границе переводятся в ms — конвенция проекта).
/// </remarks> /// </remarks>
/// <param name="Id">Короткий id задачи (префикс <c>dt_</c>).</param> /// <param name="Id">Короткий id задачи (префикс <c>dt_</c>).</param>
@@ -18,7 +18,7 @@ namespace Deal.Modules.Discovery.Application.Models;
/// <param name="SampleSize">Размер выборки сообщений при оценке (≥1; дефолт discEvalSample).</param> /// <param name="SampleSize">Размер выборки сообщений при оценке (≥1; дефолт discEvalSample).</param>
/// <param name="PlanJoins">План авто-вступлений задачи (1..discJoinLimit; занимает суточный бюджет).</param> /// <param name="PlanJoins">План авто-вступлений задачи (1..discJoinLimit; занимает суточный бюджет).</param>
/// <param name="AutoJoin">Авто-вступления воркером включены (иначе кандидатов вступает человек).</param> /// <param name="AutoJoin">Авто-вступления воркером включены (иначе кандидатов вступает человек).</param>
/// <param name="Status">Статус задачи (см. <see cref="Deal.Modules.Discovery.Application.DiscoveryTaskStatuses"/>).</param> /// <param name="Status">Статус задачи (см. <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryTaskStatuses"/>).</param>
/// <param name="SearchIdx">Индекс текущего ключа поиска (прогресс прохода по keywords).</param> /// <param name="SearchIdx">Индекс текущего ключа поиска (прогресс прохода по keywords).</param>
/// <param name="SearchDone">Проход по всем ключам завершён (searchIdx ≥ keywords.Count).</param> /// <param name="SearchDone">Проход по всем ключам завершён (searchIdx ≥ keywords.Count).</param>
/// <param name="Found">Найдено кандидатов (счётчик found).</param> /// <param name="Found">Найдено кандидатов (счётчик found).</param>
@@ -5,7 +5,7 @@ namespace Deal.Modules.Discovery.Application.Models;
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Write-модель: содержит полное состояние новой задачи, включая готовый id (<c>dt_...</c>, генерирует модуль — /// Write-модель: содержит полное состояние новой задачи, включая готовый id (<c>dt_...</c>, генерирует модуль —
/// <see cref="Deal.Modules.Discovery.Application.DiscoveryIdPrefixes"/>). Служебные значения, вычисленные до /// <see cref="Deal.Modules.Discovery.Application.Models.DiscoveryIdPrefixes"/>). Служебные значения, вычисленные до
/// записи: Status=<c>draft</c>, SearchIdx=0, SearchDone=false, счётчики Found/Evaluated/Joined/Rejected=0 — /// записи: Status=<c>draft</c>, SearchIdx=0, SearchDone=false, счётчики Found/Evaluated/Joined/Rejected=0 —
/// как в INSERT прототипа discovery.py L260280. CreatedAt/UpdatedAt проставляет хранилище (UTC-now); /// как в INSERT прототипа discovery.py L260280. CreatedAt/UpdatedAt проставляет хранилище (UTC-now);
/// keywords адаптер сериализует в JSON при записи. /// keywords адаптер сериализует в JSON при записи.
@@ -1,4 +1,10 @@
namespace Deal.Modules.Discovery.Application; using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Exceptions;
using Deal.Modules.Discovery.Application.Extensions;
using Deal.Modules.Discovery.Application.Registrars;
using Deal.Modules.Discovery.Application.Services;
namespace Deal.Modules.Discovery.Application.Models;
/// <summary> /// <summary>
/// Статусы задачи поиска Discovery (колонка DiscTasks.Status; discovery.py L147, api-map §4.8). /// Статусы задачи поиска Discovery (колонка DiscTasks.Status; discovery.py L147, api-map §4.8).

Some files were not shown because too many files have changed in this diff Show More