namespace DorkNet.Server.Data.Entities;
///
/// One cheer (the watch's positive-feedback button). Targets exactly
/// one of: a player (stored on ), a room
/// (), or a photo ().
/// Unused targets are 0. Aggregated reputation queries SUM rows by
/// target.
///
/// One row per (FromPlayer, target, Type) — re-cheering is idempotent
/// (we upsert on the unique index).
///
public class CheerEntity
{
public long Id { get; set; }
public long FromPlayerId { get; set; }
public long TargetPlayerId { get; set; }
public long TargetRoomId { get; set; }
public long TargetPhotoId { get; set; }
public long TargetInventionId { get; set; }
/// RoomieCheerType enum mirror: 0=General, 1=Helpful,
/// 2=GreatHost, 3=Sportsman, 4=Creative, 5=Credit. Stored as int
/// to leave room for future categories without a migration.
public int Type { get; set; }
public DateTime CheeredAt { get; set; } = DateTime.UtcNow;
}