namespace BrokerCore.ApiModels; using System.ComponentModel; using System.Text.Json.Serialization; using Swashbuckle.AspNetCore.Annotations; [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( "교환 주문 목록 요청
- SsoAccountId 또는 UserGuid 중 하나를 선택해서 유저 구분
- 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 Orders { get; init; } [Description("교환 주문 총 개수")] public required int TotalCount { get; init; } }