< Summary

Information
Class: AppRepository.ApiServices.OzonApi.Filters.ChatHistoryResponse
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/OzonApi/Filters/ChatHistoryResponse.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 3
Coverable lines: 3
Total lines: 119
Line coverage: 0%
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_IsPremiumRequired()100%210%
get_HasNext()100%210%
get_Messages()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/OzonApi/Filters/ChatHistoryResponse.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Text.Json.Serialization;
 4
 5namespace AppRepository.ApiServices.OzonApi.Filters
 6{
 7    /// <summary>
 8    /// Ответ с историей сообщений чата (/v3/chat/history)
 9    /// </summary>
 10    public class ChatHistoryResponse
 11    {
 12        /// <summary>
 13        /// Требуется Premium Plus для доступа к чату
 14        /// </summary>
 15        [JsonIgnore]
 016        public bool IsPremiumRequired { get; set; } = false;
 17        /// <summary>
 18        /// Признак, что в ответе вернули не все сообщения
 19        /// </summary>
 20        [JsonPropertyName("has_next")]
 021        public bool HasNext { get; set; }
 22
 23        /// <summary>
 24        /// Массив сообщений
 25        /// </summary>
 26        [JsonPropertyName("messages")]
 027        public List<ChatMessage>? Messages { get; set; } = new();
 28    }
 29
 30    /// <summary>
 31    /// Сообщение чата
 32    /// </summary>
 33    public class ChatMessage
 34    {
 35        /// <summary>
 36        /// Контекст сообщения (заказ, SKU)
 37        /// </summary>
 38        [JsonPropertyName("context")]
 39        public ChatMessageContext? Context { get; set; }
 40
 41        /// <summary>
 42        /// Дата создания сообщения
 43        /// </summary>
 44        [JsonPropertyName("created_at")]
 45        public DateTime CreatedAt { get; set; }
 46
 47        /// <summary>
 48        /// Содержимое сообщения в формате Markdown
 49        /// </summary>
 50        [JsonPropertyName("data")]
 51        public List<string>? Data { get; set; } = new();
 52
 53        /// <summary>
 54        /// Признак, что сообщение содержит изображение
 55        /// </summary>
 56        [JsonPropertyName("is_image")]
 57        public bool IsImage { get; set; }
 58
 59        /// <summary>
 60        /// Признак, что сообщение прочитано
 61        /// </summary>
 62        [JsonPropertyName("is_read")]
 63        public bool IsRead { get; set; }
 64
 65        /// <summary>
 66        /// Идентификатор сообщения
 67        /// </summary>
 68        [JsonPropertyName("message_id")]
 69        public long MessageId { get; set; }
 70
 71        /// <summary>
 72        /// Статус модерации изображения: SUCCESS, MODERATION, FAILED
 73        /// </summary>
 74        [JsonPropertyName("moderate_image_status")]
 75        public string? ModerateImageStatus { get; set; }
 76
 77        /// <summary>
 78        /// Информация об участнике чата
 79        /// </summary>
 80        [JsonPropertyName("user")]
 81        public ChatMessageUser? User { get; set; }
 82    }
 83
 84    /// <summary>
 85    /// Контекст сообщения
 86    /// </summary>
 87    public class ChatMessageContext
 88    {
 89        /// <summary>
 90        /// Номер заказа
 91        /// </summary>
 92        [JsonPropertyName("order_number")]
 93        public string? OrderNumber { get; set; }
 94
 95        /// <summary>
 96        /// Идентификатор товара в системе Ozon — SKU
 97        /// </summary>
 98        [JsonPropertyName("sku")]
 99        public string? Sku { get; set; }
 100    }
 101
 102    /// <summary>
 103    /// Информация об участнике чата
 104    /// </summary>
 105    public class ChatMessageUser
 106    {
 107        /// <summary>
 108        /// Идентификатор пользователя
 109        /// </summary>
 110        [JsonPropertyName("id")]
 111        public string? Id { get; set; }
 112
 113        /// <summary>
 114        /// Тип пользователя (Customer, Seller, System и т.д.)
 115        /// </summary>
 116        [JsonPropertyName("type")]
 117        public string? Type { get; set; }
 118    }
 119}