using System.ComponentModel;
using System.Text.Json.Serialization;
using Swashbuckle.AspNetCore.Annotations;
namespace BrokerApiCore;
public class AdminSapphireChangeRequest
{
public string AccountId { get; set; } = string.Empty;
public string UserGuid { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public required int SapphireDelta { get; set; }
}
public class AdminSapphireChangeResponse
{
public string AccountId { get; set; } = string.Empty;
public string UserGuid { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public required int SapphireDelta { get; set; }
public long SapphireCurrentAmount { get; set; }
}
[SwaggerSchema(
"교환 주문 목록 요청
- SsoAccountId 또는 UserGuid 중 하나를 선택해서 유저 구분
- seasonId는 필수로 입력 (관련 내용은 사업부에 문의)")]
public class AdminItemExchangeOrderListRequest
{
[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; }
public DateTime? StartDate { get; init; }
public DateTime? EndDate { 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";
}