Files
caliverse_server/ServerCommon/1. Define/BusinessLog/Domain/LandAuctionLogInfo.cs
2025-05-01 07:20:41 +09:00

161 lines
7.4 KiB
C#

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;
}
}
}