165 lines
4.8 KiB
C#
165 lines
4.8 KiB
C#
using System.ComponentModel;
|
|
using ServerCommon;
|
|
using Swashbuckle.AspNetCore.Annotations;
|
|
|
|
namespace BrokerApiCore;
|
|
[SwaggerSchema("사파이어 잔액 요청")]
|
|
public class SapphireRequest
|
|
{
|
|
[Description("사용자 GUID")]
|
|
public required string UserGuid { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("사파이어 잔액 응답")]
|
|
public class SapphireResponse
|
|
{
|
|
[Description("사파이어 잔액")]
|
|
public required long Amount { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 정보")]
|
|
public class ExchangeOrder
|
|
{
|
|
[Description("주문 ID")]
|
|
public required string OrderId { get; init; }
|
|
|
|
[Description("사파이어 수량 - 삭제 예정"), SwaggerIgnore]
|
|
public long? SapphireAmount { get; init; }
|
|
|
|
[Description("사파이어 차감 수량")]
|
|
public required long SapphireReduceAmount { get; init; }
|
|
|
|
[Description("에메랄드 수량")]
|
|
public required long EmeraldAmount { get; init; }
|
|
|
|
[Description("주문 생성 시간")]
|
|
public required DateTime CreatedAt { get; init; }
|
|
|
|
[Description("주문 완료 시간")]
|
|
public DateTime? CompletedAt { get; init; }
|
|
|
|
[Description("주문 상태")]
|
|
public required ExchangeOrderStatus Status { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("칼리버스와 플래닛 간 재화 교환 주문 정보")]
|
|
public class CurrencyExchangeOrder
|
|
{
|
|
[Description("주문 ID")]
|
|
public required string OrderId { get; init; }
|
|
|
|
[Description("재화 타입 - ")]
|
|
public required CurrencyType CurrencyType { get; init; }
|
|
|
|
[Description("플래닛의 재화 변동 수량")]
|
|
public required long CurrencyDeltaAmount { get; init; }
|
|
|
|
[Description("재화 타입 - ")]
|
|
public required PlanetCurrencyType PlanetCurrencyType { get; init; }
|
|
|
|
[Description("플래닛의 재화 변동 수량")]
|
|
public required long PlanetCurrencyDeltaAmount { get; init; }
|
|
|
|
[Description("주문 생성 시간")]
|
|
public required DateTime CreatedAt { get; init; }
|
|
|
|
[Description("주문 완료 시간")]
|
|
public DateTime? CompletedAt { get; init; }
|
|
|
|
[Description("주문 상태")]
|
|
public required ExchangeOrderStatus Status { get; init; }
|
|
}
|
|
|
|
// [SwaggerSchema("조회 옵션")]
|
|
// [JsonConverter(typeof(JsonStringEnumConverter))]
|
|
[SwaggerSchema("조회 옵션 - 'All': 전체, 'Pending': 대기, 'Completed': 완료")]
|
|
public enum FindOption
|
|
{
|
|
[Description("전체 목록 조회")]
|
|
// [EnumMember(Value = "All")]
|
|
All = 0,
|
|
// [EnumMember(Value = "Pending")]
|
|
[Description("대기 중인 주문 조회")]
|
|
Pending = 1,
|
|
[Description("완료된 주문 조회")]
|
|
// [EnumMember(Value = "Completed")]
|
|
Completed = 2
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 목록 요청")]
|
|
public class ExchangeOrderListRequest
|
|
{
|
|
[Description("사용자 GUID")]
|
|
public required string UserGuid { get; init; }
|
|
[Description("조회 옵션 (0: 전체, 1: 대기, 2: 완료)")]
|
|
public required FindOption Option { get; init; }
|
|
[Description("페이지 번호")]
|
|
public int PageIndex { get; set; } = 1;
|
|
[Description("페이지 크기")]
|
|
public int PageSize { get; set; } = 20;
|
|
[Description("정렬 기준 => asc: 오름차순, desc: 내림차순")]
|
|
public string SortOrder { get; set; } = "asc";
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 목록 응답")]
|
|
public class ExchangeOrderListResponse
|
|
{
|
|
[Description("교환 주문 목록")]
|
|
public required IEnumerable<ExchangeOrder> Orders { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 요청")]
|
|
public class ExchangeOrderRequest
|
|
{
|
|
[Description("사용자 GUID")]
|
|
public required string UserGuid { get; set; }
|
|
|
|
[Description("차감을 요청할 사파이어 수량")]
|
|
public long Sapphire { get; set; }
|
|
|
|
[Description("요청할 에메랄드 수량")]
|
|
public long Emerald { get; set; }
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 응답")]
|
|
public class ExchangeOrderResponse
|
|
{
|
|
[Description("주문 ID")]
|
|
public required string OrderId { get; init; }
|
|
|
|
[Description("차감 사파이어 수량")]
|
|
public long SapphireAmount { get; init; }
|
|
|
|
[Description("에메랄드 수량")]
|
|
public long EmeraldAmount { get; init; }
|
|
|
|
[Description("현재 사파이어 잔액")]
|
|
public long CurrentSapphireBalance { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 완료 요청")]
|
|
public class ExchangeOrderCompleteRequest
|
|
{
|
|
[Description("주문 ID")]
|
|
public required string OrderId { get; set; }
|
|
|
|
[Description("사용자 GUID")]
|
|
public required string UserGuid { get; set; }
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 완료 응답")]
|
|
public class ExchangeOrderCompleteResponse
|
|
{
|
|
[Description("주문 ID")]
|
|
public required string OrderId { get; init; }
|
|
|
|
[Description("사파이어 수량")]
|
|
public long SapphireAmount { get; init; }
|
|
|
|
[Description("에메랄드 수량")]
|
|
public long EmeraldAmount { get; init; }
|
|
|
|
[Description("현재 주문 상태")]
|
|
public ExchangeOrderStatus Status { get; init; }
|
|
}
|