using MongoDB.Driver; using Postall.Domain.Entities; using System.Collections.Generic; using System.Threading.Tasks; namespace Postall.Domain { public interface IUserSocialRepository { /// /// Obtém todos os dados sociais dos usuários /// Task> GetAllAsync(); /// /// Obtém os dados sociais pelo ID do MongoDB /// Task GetByIdAsync(string id); /// /// Obtém os dados sociais pelo ID do usuário /// Task GetByUserIdAsync(string userId); /// /// Obtém os dados sociais pelo token do Google /// Task GetByGoogleTokenAsync(string googleToken); /// /// Adiciona novos dados sociais de usuário /// Task AddAsync(UserSocialData userSocialData); /// /// Atualiza os dados sociais de um usuário existente /// Task UpdateAsync(UserSocialData userSocialData); /// /// Atualiza ou insere os dados sociais de um usuário /// Task UpsertAsync(UserSocialData userSocialData); /// /// Atualiza ou insere os dados sociais de um usuário unico pelo id /// Task UpdateOneAsync(string userId, UpdateDefinition update); /// /// Remove os dados sociais pelo ID do MongoDB /// Task DeleteAsync(string id); /// /// Remove os dados sociais pelo ID do usuário /// Task DeleteByUserIdAsync(string userId); /// /// Atualiza apenas o token do Google para um usuário /// Task UpdateGoogleTokenAsync(string userId, string googleToken); /// /// Atualiza apenas o token do Facebook para um usuário /// Task UpdateFacebookTokenAsync(string userId, FacebookToken facebookToken); } }