namespace DorkNet.Server.Data.Entities; /// /// One row per (PlaylistId, PlayerId) tracking the player's cheer /// + favorite flags on a playlist. Drives /playlists/{id}/interactionby/me /// (read), the four interactionby/me mutation endpoints (cheer / /// uncheer / favorite / unfavorite toggles), and the /// playlists/cheeredby/me + playlists/favoritedby/me /// lists. /// /// Counter columns on (CheerCount / /// FavoriteCount) are kept in sync by /// on each toggle so the hot ranking + tile badges read from the /// row without an aggregate join. /// public class PlaylistInteractionEntity { public long Id { get; set; } public long PlaylistId { get; set; } public long PlayerId { get; set; } public bool Cheered { get; set; } = false; public bool Favorited { get; set; } = false; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; }