using System.ComponentModel; using System.Text.Json.Serialization; using ServerCommon; using Swashbuckle.AspNetCore.Annotations; namespace BrokerApiCore; [SwaggerSchema("플래닛 아이템 교환 주문 정보")] public class PlanetItemExchangeOrderDto { [Description("교환 주문 아이디")] public required string OrderId { get; init; } [JsonConverter(typeof(JsonStringEnumConverter))] [Description("교환 주문 상태")] public required ExchangeOrderStatus OrderStatus { get; set; } [Description("시즌 아이디")] public string SeasonId { get; init; } = string.Empty; [Description("플래닛 아이템 교환 메타 ID")] public required string ExchangeMetaId { get; set; } [Description("플래닛 아이템 교환 메타 갯수")] public required long ExchangeMetaAmount { get; set; } [Description("SSO 아이디")] public required string AccountId { get; init; } [Description("유저 아이디")] public required string UserGuid { get; set; } [Description("플래닛 아이디")] public required string PlanetId { get; set; } [JsonConverter(typeof(JsonStringEnumConverter))] [Description("칼리버스 아이템 타입")] public required CaliverseItemType CaliverseItemType { get; set; } [Description("칼리버스 아이템 아이디")] public required string CaliverseItemId { get; set; } [Description("칼리버스 아이템 증감 갯수")] public required long CaliverseItemDeltaAmount { get; set; } [JsonConverter(typeof(JsonStringEnumConverter))] [Description("플래닛 아이템 타입")] public required PlanetItemType PlanetItemType { get; set; } [Description("플래닛 아이템 아이디")] public required string PlanetItemId { get; set; } [Description("플래닛 아이템 증감 갯수")] public required long PlanetItemDeltaAmount { get; set; } [Description("교환 주문 시작 시간")] public DateTime CreatedAt { get; set; } [Description("교환 주문 완료 시간")] public DateTime? CompletedAt { get; set; } }