server-master/srcs/_plugins/Plugin.DB.EF/Entities/PlayersData/DbCharacter.cs
2026-02-10 18:21:30 +01:00

228 lines
No EOL
6.7 KiB
C#

// WingsEmu
//
// Developed by NosWings Team
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using PhoenixLib.DAL.EFCore.PGSQL;
using Plugin.Database.Bazaar;
using Plugin.Database.DB;
using Plugin.Database.Entities.Account;
using Plugin.Database.Families;
using Plugin.Database.Mail;
using WingsAPI.Data.Character;
using WingsAPI.Data.Miniland;
using WingsAPI.Packets.Enums;
using WingsEmu.DTOs.Bonus;
using WingsEmu.DTOs.Buffs;
using WingsEmu.DTOs.Inventory;
using WingsEmu.DTOs.Mates;
using WingsEmu.DTOs.Quests;
using WingsEmu.DTOs.Quicklist;
using WingsEmu.DTOs.Respawns;
using WingsEmu.DTOs.Skills;
using WingsEmu.DTOs.Titles;
using WingsEmu.Game._enum;
using WingsEmu.Packets.Enums;
using WingsEmu.Packets.Enums.Character;
namespace Plugin.Database.Entities.PlayersData
{
[Table("characters", Schema = DatabaseSchemas.CHARACTERS)]
public class DbCharacter : BaseAuditableEntity, ILongEntity
{
public long AccountId { get; set; }
public int Act4Dead { get; set; }
public int Act4Kill { get; set; }
public int Act4Points { get; set; }
public int ArenaWinner { get; set; }
[MaxLength(255)]
public string Biography { get; set; }
public bool BuffBlocked { get; set; }
public ClassType Class { get; set; }
public short Compliment { get; set; }
public float Dignity { get; set; }
public bool EmoticonsBlocked { get; set; }
public bool ExchangeBlocked { get; set; }
public FactionType Faction { get; set; }
public bool FamilyRequestBlocked { get; set; }
public bool FriendRequestBlocked { get; set; }
public GenderType Gender { get; set; }
public long Gold { get; set; }
public bool GroupRequestBlocked { get; set; }
public HairColorType HairColor { get; set; }
public HairStyleType HairStyle { get; set; }
public bool HeroChatBlocked { get; set; }
public byte HeroLevel { get; set; }
public long HeroXp { get; set; }
public int Hp { get; set; }
public bool HpBlocked { get; set; }
public bool IsPetAutoRelive { get; set; }
public bool IsPartnerAutoRelive { get; set; }
public byte JobLevel { get; set; }
public long JobLevelXp { get; set; }
public byte Level { get; set; }
public long LevelXp { get; set; }
public int MapId { get; set; }
public short MapX { get; set; }
public short MapY { get; set; }
public int MasterPoints { get; set; }
public int MasterTicket { get; set; }
public byte MaxPartnerCount { get; set; }
public byte MaxPetCount { get; set; }
public bool MinilandInviteBlocked { get; set; }
[MaxLength(255)]
public string MinilandMessage { get; set; }
public short MinilandPoint { get; set; }
public MinilandState MinilandState { get; set; }
public bool MouseAimLock { get; set; }
public int Mp { get; set; }
[MaxLength(25)]
public string Prefix { get; set; }
[MaxLength(30)]
public string Name { get; set; }
public bool QuickGetUp { get; set; }
public bool HideHat { get; set; }
public bool UiBlocked { get; set; }
public long RagePoint { get; set; }
public long Reput { get; set; }
public byte Slot { get; set; }
public int SpPointsBonus { get; set; }
public int SpPointsBasic { get; set; }
public int TalentLose { get; set; }
public int TalentSurrender { get; set; }
public int TalentWin { get; set; }
public bool WhisperBlocked { get; set; }
public Act5RespawnType Act5RespawnType { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterPartnerInventoryItemDto> PartnerInventory { get; set; } = new();
[Column(TypeName = "jsonb")]
public List<MateDTO> NosMates { get; set; }
[Column(TypeName = "jsonb")]
public List<PartnerWarehouseItemDto> PartnerWarehouse { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterStaticBonusDto> Bonus { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterStaticBuffDto> StaticBuffs { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterQuicklistEntryDto> Quicklist { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterSkillDTO> LearnedSkills { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterTitleDto> Titles { get; set; }
[Column(TypeName = "jsonb")]
public List<CompletedScriptsDto> CompletedScripts { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterQuestDto> CompletedQuests { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterQuestDto> ActiveQuests { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterQuestDto> CompletedPeriodicQuests { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterMinilandObjectDto> MinilandObjects { get; set; }
[Column(TypeName = "jsonb")]
public CharacterReturnDto ReturnPoint { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterInventoryItemDto> Inventory { get; set; }
[Column(TypeName = "jsonb")]
public List<CharacterInventoryItemDto> EquippedStuffs { get; set; }
[Column(TypeName = "jsonb")]
public CharacterLifetimeStatsDto LifetimeStats { get; set; }
public RespawnType RespawnType { get; set; }
[Column(TypeName = "jsonb")]
public HashSet<long> CompletedTimeSpaces { get; set; }
[Column(TypeName = "jsonb")]
public CharacterRaidRestrictionDto RaidRestrictionDto { get; set; }
[Column(TypeName = "jsonb")]
public RainbowBattleLeaverBusterDto RainbowBattleLeaverBusterDto { get; set; }
public virtual ICollection<DbBazaarItemEntity> BazaarItem { get; set; }
public virtual ICollection<DbFamilyMembership> FamilyCharacter { get; set; }
public virtual ICollection<CharacterRelationEntity> SourceRelations { get; set; }
public virtual ICollection<CharacterRelationEntity> TargetRelations { get; set; }
public virtual ICollection<DbCharacterNote> SentNotes { get; set; }
public virtual ICollection<DbCharacterNote> ReceivedNotes { get; set; }
public virtual ICollection<DbCharacterMail> ReceivedMails { get; set; }
public virtual AccountEntity AccountEntity { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
}
}