91 lines
3.9 KiB
C#
91 lines
3.9 KiB
C#
using System.ComponentModel;
|
|
using System.Text.Json.Serialization;
|
|
|
|
using Swashbuckle.AspNetCore.Annotations;
|
|
|
|
namespace BrokerApiCore;
|
|
|
|
[SwaggerSchema("재화 잔액 요청")]
|
|
public class CurrencyBalanceRequest
|
|
{
|
|
[Description("칼리버스 재화 타입 : Sapphire (현재는 Sapphire 만 사용)")]
|
|
public string CaliverseCurrencyType { get; init; } = CurrencyType.Sapphire.ToString();
|
|
|
|
[Description("SsoAccountId - sso의 accountId로 조회할 경우, UserGuid 불필요")]
|
|
public string SsoAccountId { get; init; } = string.Empty;
|
|
|
|
[Description("사용자 GUID - UserGuid으로 조회할 경우, SsoAccountId 불필요")]
|
|
public string UserGuid { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("재화 잔액 응답")]
|
|
public class CurrencyBalanceResponse
|
|
{
|
|
[Description("칼리버스 재화 타입 : Sapphire (현재는 Sapphire 만 사용)")]
|
|
public string CaliverseCurrencyType { get; init; }
|
|
|
|
[Description("사용자 잔액")] public double Amount { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("아이템 교환 요청")]
|
|
public class PlanetItemExchangeRequest
|
|
{
|
|
[Description("사용자 GUID")] public required string UserGuid { get; init; }
|
|
|
|
[Description("시즌 아이디 => 이기몹 게임 시즌 이름 (사업부에 문의 - 테스트 시에는 아무거나 사용 가능)")]
|
|
public required string SeasonId { get; init; } = string.Empty;
|
|
|
|
[Description("플래닛 아이템 교환 메타 ID")] public required string ExchangeMetaId { get; init; }
|
|
[Description("플래닛 아이템 교환 메타 개수")] public required int ExchangeMetaAmount { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("아이템 교환 응답")]
|
|
public class PlanetItemExchangeResponse
|
|
{
|
|
[Description("교환 주문 정보")] public required PlanetItemExchangeOrderDto ExchangeOrder { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema("아이템 교환 요청")]
|
|
public class PlanetItemExchangeCompleteRequest
|
|
{
|
|
[Description("사용자 GUID")] public required string UserGuid { get; init; }
|
|
|
|
[Description("플래닛 아이템 주문 ID")] public required string ExchangeOrderId { get; init; }
|
|
}
|
|
|
|
[SwaggerSchema(
|
|
"교환 주문 목록 요청 <br> - SsoAccountId 또는 UserGuid 중 하나를 선택해서 유저 구분 <br> - seasonId는 필수로 입력 (관련 내용은 사업부에 문의)")]
|
|
public class PlanetItemExchangeOrderListRequest
|
|
{
|
|
[Description("SsoAccountId => sso의 accountId로 조회할 경우, UserGuid 불필요")]
|
|
public string SsoAccountId { get; init; } = string.Empty;
|
|
|
|
[Description("사용자 GUID => UserGuid으로 조회할 경우, SsoAccountId 불필요")]
|
|
public string UserGuid { get; init; } = string.Empty;
|
|
|
|
[Description("조회할 PlanetId => 웹 포탈에서 조회시 이기몹의 교환 정보를 얻으려면 반드시 igm26_iggymob을 명시해야함")]
|
|
public required string PlanetId { get; init; } = string.Empty;
|
|
|
|
[Description("시즌 아이디 => 이기몹 게임 시즌 이름으로 해당 시즌만 조회 (빈문자열 일 경우, 모두 조회)")]
|
|
public required string SeasonId { get; init; } = string.Empty;
|
|
|
|
[Description("플래닛 아이템 교환 메타 ID => 메타테이블의 ID (빈문자열 일 경우 모두 조회)")]
|
|
public required string ExchangeMetaId { get; init; }
|
|
|
|
[Description("조회 옵션 => 'All': 전체, 'Pending': 대기, 'Completed': 완료")]
|
|
[JsonConverter(typeof(JsonStringEnumConverter))]
|
|
public required FindOption Option { get; init; }
|
|
[Description("페이지 번호 (기본값:1)")] public int PageIndex { get; init; } = 1;
|
|
[Description("페이지 크기 (기본값:20)")] public int PageSize { get; init; } = 20;
|
|
|
|
[Description("정렬 기준 => asc: 오름차순, desc: 내림차순")]
|
|
public string SortOrder { get; init; } = "asc";
|
|
}
|
|
|
|
[SwaggerSchema("교환 주문 목록 응답")]
|
|
public class PlanetItemExchangeOrderListResponse
|
|
{
|
|
[Description("교환 주문 목록")] public required IEnumerable<PlanetItemExchangeOrderDto> Orders { get; init; }
|
|
[Description("교환 주문 총 개수")] public required int TotalCount { get; init; }
|
|
}
|