using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using ServerCore; using ServerBase; using MetaAssets; using META_ID = System.UInt32; using LAND_AUCTION_NUMBER = System.Int32; using USER_GUID = System.String; using USER_NICKNAME = System.String; namespace ServerCommon.BusinessLogDomain { public class LandAuctionLogInfo : ILogInvoker.IInfo { //============================================================================================= // 랜드 경매 식별 정보 //============================================================================================= [JsonProperty("land_meta_id")] public META_ID LandMetaId { get; set; } = 0; // 경매 대상 LandData Meta Id [JsonProperty("auction_number")] public LAND_AUCTION_NUMBER AuctionNumber { get; set; } = 0; // 경매 번호 //============================================================================================= // DB 식별 정보 //============================================================================================= [JsonProperty] public string LandAuctionRegistryPK { get; set; } = string.Empty; [JsonProperty] public string LandAuctionRegistrySK { get; set; } = string.Empty; //============================================================================================= // 랜드 경매 등록 정보 //============================================================================================= [JsonProperty("bid_currency_type")] public CurrencyType BidCurrencyType { get; set; } = 0; // 입찰 재화의 종류 [JsonProperty("bid_start_price")] public double BidStartPrice { get; set; } = 0; // 입찰 시작가 [JsonProperty("auction_reservation_notice_start_time")] public DateTime AuctionReservationNoticeStartTime { get; set; } = DateTimeHelper.MinTime; // 경매 예약 공지 시작 시간 [JsonProperty("auction_start_time")] public DateTime AuctionStartTime { get; set; } = DateTimeHelper.MinTime; // 경매 시작 시간 [JsonProperty("auction_end_time")] public DateTime AuctionEndTime { get; set; } = DateTimeHelper.MinTime; // 경매 종료 시간 [JsonProperty("is_cancel_auction")] public bool IsCancelAuction { get; set; } = false; // 경매 취소 여부 (취소:true, 미취소:false) [JsonProperty("registered_version_time")] public DateTime RegisteredVersionTime { get; set; } = DateTimeHelper.MinTime; // 경매 등록 버전 정보 (시간), 랜드 경매 등록 정보가 변경되면 등록 버전 정보도 갱신 되어야 한다. !!! //============================================================================================= // 랜드 경매 진행 정보 //============================================================================================= [JsonProperty("auction_state")] public LandAuctionState LandAuctionState { get; set; } = LandAuctionState.None; // 경매 상태 [JsonProperty("auction_result")] public LandAuctionResult LandAuctionResult { get; set; } = LandAuctionResult.None; // 경매 결과 [JsonProperty("winning_user_guid")] public USER_GUID WinningUserGuid { get; set; } = string.Empty; // 경매 낙찰자의 식별키 [JsonProperty("winning_user_nickname")] public USER_NICKNAME WinningUserNickname { get; set; } = string.Empty; // 경매 낙찰자의 닉네임 [JsonProperty("process_version_time")] public DateTime ProcessVersionTime { get; set; } = DateTimeHelper.MinTime; // 경매 진행 버전 정보 (시간), 랜드 경매 진행 정보가 변경되면 진행 버전 정보도 갱신되어야 한다. !!! //===================================================================================== // 로그 생성용 객체 정의 //===================================================================================== public LandAuctionLogInfo() : base() { } public void setInfo(LandAuctionLogInfo logInfo) { LandMetaId = logInfo.LandMetaId; AuctionNumber = logInfo.AuctionNumber; LandAuctionRegistryPK = logInfo.LandAuctionRegistryPK; LandAuctionRegistrySK = logInfo.LandAuctionRegistrySK; BidCurrencyType = logInfo.BidCurrencyType; BidStartPrice = logInfo.BidStartPrice; AuctionReservationNoticeStartTime = logInfo.AuctionReservationNoticeStartTime; AuctionStartTime = logInfo.AuctionStartTime; AuctionEndTime = logInfo.AuctionEndTime; IsCancelAuction = logInfo.IsCancelAuction; RegisteredVersionTime = logInfo.RegisteredVersionTime; LandAuctionState = logInfo.LandAuctionState; LandAuctionResult = logInfo.LandAuctionResult; WinningUserGuid = logInfo.WinningUserGuid; WinningUserNickname = logInfo.WinningUserNickname; ProcessVersionTime = logInfo.ProcessVersionTime; } //===================================================================================== // 로그 출력용 객체 정의 //===================================================================================== public LandAuctionLogInfo(ILogInvoker parent, LandAuctionLogInfo logInfo) : base(parent) { if (null != logInfo) { setInfo(logInfo); } } //===================================================================================== // 로그 설정용 함수 //===================================================================================== public void setLogProperty( META_ID landMetaId, LAND_AUCTION_NUMBER auctionNumber , string landAuctionRegistryPK, string landAuctionRegistrySK , CurrencyType bidCurrencyType, double bidStartPrice , DateTime auctionReservationNoticeStartTime , DateTime auctionStartTime, DateTime auctionEndTime, bool isCancelAuction , DateTime registeredVersionTime , LandAuctionState landAuctionState, LandAuctionResult landAuctionResult , USER_GUID winningUserGuid, USER_NICKNAME winningUserNickname , DateTime processVersionTime ) { LandMetaId = landMetaId; AuctionNumber = auctionNumber; LandAuctionRegistryPK = landAuctionRegistryPK; LandAuctionRegistrySK = landAuctionRegistrySK; BidCurrencyType = bidCurrencyType; BidStartPrice = bidStartPrice; AuctionReservationNoticeStartTime = auctionReservationNoticeStartTime; AuctionStartTime = auctionStartTime; AuctionEndTime = auctionEndTime; IsCancelAuction = isCancelAuction; RegisteredVersionTime = registeredVersionTime; LandAuctionState = landAuctionState; LandAuctionResult = landAuctionResult; WinningUserGuid = winningUserGuid; WinningUserNickname = winningUserNickname; ProcessVersionTime = processVersionTime; } } }