divan/RMuseum/Models/Divan/DivanComment.cs
Anas Rashid 532d005cdb Rename Ganjoor -> Divan throughout the code
Projects (GanjooRazor -> DivanRazor, GanjoorService.sln -> DivanService.sln), files,
folders, classes, namespaces, settings, API routes (/api/divan) and DB tables (Divan*).
External addresses (ganjoor.net, github.com/ganjoor) unchanged. Migrations renamed
consistently (no pending model changes); requires a fresh database.
Upstream RUNNING_LOCALLY/SEMANTIC_SEARCH docs archived unmodified under docs/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:49:01 +02:00

126 lines
3.3 KiB
C#

using RMuseum.Models.Artifact;
using RSecurityBackend.Models.Auth.Db;
using System;
namespace RMuseum.Models.Divan
{
/// <summary>
/// Divan Comment
/// </summary>
public class DivanComment
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// Divan Poem Id
/// </summary>
public int PoemId { get; set; }
/// <summary>
/// Divan Poem Id
/// </summary>
public DivanPoem Poem { get; set; }
/// <summary>
/// user id
/// </summary>
public Guid? UserId { get; set; }
/// <summary>
/// user
/// </summary>
public virtual RAppUser User { get; set; }
/// <summary>
/// author name (MySql imported field)
/// </summary>
public string AuthorName { get; set; }
/// <summary>
/// author email (MySql imported field)
/// </summary>
public string AuthorEmail { get; set; }
/// <summary>
/// author url (MySql imported field)
/// </summary>
public string AuthorUrl { get; set; }
/// <summary>
/// author IP address (MySql imported field)
/// </summary>
public string AuthorIpAddress { get; set; }
/// <summary>
/// comment date
/// </summary>
public DateTime CommentDate { get; set; }
/// <summary>
/// comment
/// </summary>
public string HtmlComment { get; set; }
/// <summary>
/// In Reply to Other Comment
/// </summary>
public virtual DivanComment InReplyTo { get; set; }
/// <summary>
/// Reference Comment Id
/// </summary>
public int? InReplyToId { get; set; }
/// <summary>
/// publish status
/// </summary>
public PublishStatus Status { get; set; }
/// <summary>
/// related verse 1 Id, this is always null, because verses are removed and created on operations like editing and their Ids changed, so
/// later I decided to rely on (PoemId + CoupletIndex) instead
/// </summary>
public int? Verse1Id { get; set; }
/// <summary>
/// do not use
/// </summary>
public virtual DivanVerse Verse1 { get; set; }
/// <summary>
/// related verse 2 Id, this is always null, because verses are removed and created on operations like editing and their Ids changed, so
/// later I decided to rely on (PoemId + CoupletIndex) instead
/// </summary>
public int? Verse12d { get; set; }
/// <summary>
/// do not use
/// </summary>
public virtual DivanVerse Verse2 { get; set; }
/// <summary>
/// couplet index
/// </summary>
public int? CoupletIndex { get; set; }
/// <summary>
/// Total likes
/// </summary>
public int LikeCount { get; set; }
/// <summary>
/// Total dislikes
/// </summary>
public int DislikeCount { get; set; }
/// <summary>
/// Internal ranking key for sorting.
/// Not shown to users.
/// </summary>
public int SortKey /*RankingScore*/ { get; set; }
}
}