using System.Collections.Generic; using CommonDomain.BaseModel; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Options; using MongoRepository; using MongoRepository.Attributes; using MongoRepository.Config; namespace UserDomain.Entity { [BsonCollection("lottery_record", ServiceDatabases.User)] public class LotteryRecord : MongoBaseEntity { public string ActivityCycleKey { get; set; } = string.Empty; public string UserId { get; set; } = string.Empty; public string PrizeId { get; set; } = string.Empty; public string Level { get; set; } = string.Empty; public long Cost { get; set; } = 0; public long DrawTime { get; set; } = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); } [BsonCollection("lottery_user_status", ServiceDatabases.User)] public class LotteryUserStatus : MongoBaseEntity { public string ActivityCycleKey { get; set; } = string.Empty; public long ActivityStartTime { get; set; } public long ActivityEndTime { get; set; } public string UserId { get; set; } = string.Empty; public List DrawnPrizeIds { get; set; } = new List(); public int TotalDrawCount { get; set; } = 0; [BsonDictionaryOptions(DictionaryRepresentation.ArrayOfDocuments)] public Dictionary DrawCountByPool { get; set; } = new Dictionary(); public bool IsFinished { get; set; } = false; } }