using System; using System.Collections.Generic; using System.Threading.Tasks; using WingsAPI.Data.Families; namespace WingsEmu.Game.Families; public interface IFamilyManager { void AddFamily(FamilyDTO family, IReadOnlyCollection members); void RemoveFamily(long familyId); IFamily GetFamilyByFamilyName(string familyName); Family GetFamilyByFamilyId(long familyId); Family GetFamilyByFamilyIdCache(long familyId); void AddOrReplaceMember(FamilyMembershipDto membership); void AddOrReplaceMember(FamilyMembershipDto membership, IFamily family); void RemoveMember(long characterId, long familyId); void MemberDisconnectionUpdate(long characterId, DateTime disconnectionTime); FamilyMembership GetFamilyMembershipByCharacterId(long characterId); void AddToFamilyLogs(IReadOnlyDictionary> logs); void SendLogToFamilyServer(FamilyLogDto log); IEnumerable AddToFamilyExperiences(Dictionary exps); void SendExperienceToFamilyServer(ExperienceGainedSubMessage experienceGainedSubMessage); Task CanJoinNewFamilyAsync(int playerEntityId); Task RemovePlayerJoinCooldownAsync(int playerEntityId); }