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>
126 lines
3.3 KiB
C#
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; }
|
|
}
|
|
}
|