vknet_vk/VkNet/Model/Attachments/Market.cs
Инютин Максим Николаевич 3b145a3327 Рефакторинг проекта
2025-09-09 01:02:47 +03:00

128 lines
No EOL
3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.ObjectModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using VkNet.Enums;
using VkNet.Enums.SafetyEnums;
using VkNet.Utils.JsonConverter;
namespace VkNet.Model;
/// <summary>
/// Информация о продукте.
/// </summary>
[Serializable]
public class Market : MediaAttachment
{
/// <inheritdoc />
protected override string Alias => "market";
private long? _id;
/// <summary>
/// Id
/// </summary>
[JsonProperty("id")]
public new long? Id
{
get => _id;
set => _id = value ?? -1;
}
/// <summary>
/// Название товара
/// </summary>
[JsonProperty("title")]
public string Title { get; set; }
/// <summary>
/// Текст описания товара
/// </summary>
[JsonProperty("description")]
public string Description { get; set; }
/// <summary>
/// Цена
/// </summary>
[JsonProperty("price")]
public Price Price { get; set; }
/// <summary>
/// Габариты товара.
/// </summary>
[JsonProperty("dimensions")]
public Dimensions Dimensions { get; set; }
/// <summary>
/// Категория товара
/// </summary>
[JsonProperty("category")]
public MarketCategory Category { get; set; }
/// <summary>
/// URL изображения-обложки товара
/// </summary>
[JsonProperty("thumb_photo")]
public Uri ThumbPhoto { get; set; }
/// <summary>
/// Дата создания товара в формате Unixtime.
/// </summary>
[JsonProperty("date")]
[JsonConverter(typeof(UnixDateTimeConverter))]
public DateTime? Date { get; set; }
/// <summary>
/// Статус доступности товара
/// </summary>
[JsonProperty("availability")]
public ProductAvailability Availability { get; set; }
/// <summary>
/// Изображения товара
/// </summary>
[JsonProperty("photos")]
public ReadOnlyCollection<Photo> Photos { get; set; }
/// <summary>
/// Возможность комментировать товар для текущего пользователя
/// </summary>
[JsonProperty("can_comment")]
public bool? CanComment { get; set; }
/// <summary>
/// Возможность сделать репост товара для текущего пользователя
/// </summary>
[JsonProperty("can_repost")]
public bool? CanRepost { get; set; }
/// <summary>
/// Информация об отметках «Мне нравится»
/// </summary>
[JsonProperty("likes")]
public Likes Likes { get; set; }
/// <summary>
/// Cсылка на товар во внешних ресурсах.
/// </summary>
[JsonProperty("url")]
public Uri Url { get; set; }
/// <summary>
/// Текст на кнопке товара.
/// </summary>
[JsonProperty("button_title")]
[JsonConverter(typeof(SafetyEnumJsonConverter))]
public MarketItemButtonTitle ButtonTitle { get; set; }
/// <inheritdoc />
public override string ToString()
{
var result = $"{Alias}{OwnerId}_{Id}";
return string.IsNullOrWhiteSpace(AccessKey)
? result
: $"{result}_{AccessKey}";
}
}