using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace SVSim.Database.Services.Friend; public sealed class FriendService : IFriendService, IPlayedTogetherWriter { internal const int FriendMaxCount = 110; internal const int SendApplyMaxCount = 110; internal const int PlayedTogetherRetention = 50; // Cosmetic field defaults matching the prod capture's "no campaign, normal player" state. internal const string DefaultDeviceType = "2"; internal const string DefaultMaxFriend = "110"; internal const string DefaultIsReceivedTwoPickMission = "1"; internal const string DefaultBirth = "0"; internal const string DefaultMissionChangeTime = "2017-09-15 02:36:09"; internal const string DefaultMissionReceiveType = "0"; internal const string DefaultIsOfficial = "0"; internal const string DefaultIsOfficialMarkDisplayed = "0"; private readonly SVSimDbContext _db; private readonly ILogger _log; public FriendService(SVSimDbContext db, ILogger log) { _db = db; _log = log; } public Task GetFriendsAsync(long viewerId, CancellationToken ct) => throw new NotImplementedException(); public Task GetReceiveAppliesAsync(long viewerId, CancellationToken ct) => throw new NotImplementedException(); public Task GetSendAppliesAsync(long viewerId, CancellationToken ct) => throw new NotImplementedException(); public Task GetPlayedTogetherAsync(long viewerId, CancellationToken ct) => throw new NotImplementedException(); public Task SearchAsync(long viewerId, int targetViewerId, CancellationToken ct) => throw new NotImplementedException(); public Task SendApplyAsync(long viewerId, int targetViewerId, CancellationToken ct) => throw new NotImplementedException(); public Task ApproveApplyAsync(long viewerId, int applyId, CancellationToken ct) => throw new NotImplementedException(); public Task RejectApplyAsync(long viewerId, int applyId, CancellationToken ct) => throw new NotImplementedException(); public Task CancelApplyAsync(long viewerId, int applyId, CancellationToken ct) => throw new NotImplementedException(); public Task RejectAllAppliesAsync(long viewerId, CancellationToken ct) => throw new NotImplementedException(); public Task CancelAllAppliesAsync(long viewerId, CancellationToken ct) => throw new NotImplementedException(); public Task RejectFriendAsync(long viewerId, int targetViewerId, CancellationToken ct) => throw new NotImplementedException(); public Task RecordAsync(long ownerViewerId, long opponentViewerId, BattleParticipationContext ctx, CancellationToken ct) => throw new NotImplementedException(); }