namespace BrokerCore.ApiModels; using System.ComponentModel; using System.Text.Json.Serialization; using Swashbuckle.AspNetCore.Annotations; 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"; }