< Summary

Information
Class: Services.AiAssistant.AiSuggestionContext
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AiAssistant/IAiActionSuggestor.cs
Line coverage
66%
Covered lines: 4
Uncovered lines: 2
Coverable lines: 6
Total lines: 23
Line coverage: 66.6%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ToolName()100%11100%
get_Article()100%11100%
get_ManufacturerPrefix()100%210%
get_OrderId()100%210%
get_Orders()100%11100%
get_ConversationContext()100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AiAssistant/IAiActionSuggestor.cs

#LineLine coverage
 1using Services.ApiServices.OpenRouterApi.Models;
 2
 3namespace Services.AiAssistant;
 4
 5/// <summary>
 6/// Предлагает action-chip ссылки под ответом ассистента на основе контекста диалога.
 7/// Добавляй новые реализации для новых типов контекста — не меняй агрегатор.
 8/// </summary>
 9public interface IAiActionSuggestor
 10{
 11    IEnumerable<AiActionLinkDto> Suggest(AiSuggestionContext ctx);
 12}
 13
 14/// <summary>Контекст для построения action-chip ссылок.</summary>
 15public sealed class AiSuggestionContext
 16{
 8817    public string?                    ToolName            { get; init; }
 4618    public string?                    Article             { get; init; }
 019    public string?                    ManufacturerPrefix  { get; init; }
 020    public int?                       OrderId             { get; init; }
 11621    public List<OrderSummaryDto>      Orders              { get; init; } = [];
 922    public AiChatConversationContext? ConversationContext { get; init; }
 23}