divan/RMuseum/Models/Divan/DivanQuotedPoem.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

203 lines
5.4 KiB
C#

using RSecurityBackend.Models.Auth.Db;
using System;
namespace RMuseum.Models.Divan
{
/// <summary>
/// related poem to a poem
/// </summary>
public class DivanQuotedPoem
{
/// <summary>
/// record id
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// poem id
/// </summary>
public int PoemId { get; set; }
/// <summary>
/// poem
/// </summary>
public DivanPoem Poem { get; set; }
/// <summary>
/// related poem id (this could be a poem we do not have it available)
/// </summary>
public int? RelatedPoemId { get; set; }
/// <summary>
/// this poem is written and should be displayed prior to the related poem
/// </summary>
public bool IsPriorToRelated { get; set; }
/// <summary>
/// if the related poet poem has multiple poems related to this poem, which one is chosen to be shown at main poems pages?
/// </summary>
public bool ChosenForMainList { get; set; }
/// <summary>
/// this sort order can be used to pin a record on top
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// related poem peot death date in hijri (used for sorting)
/// </summary>
public int CachedRelatedPoemPoetDeathYearInLHijri { get; set; }
/// <summary>
/// related poem poet name
/// </summary>
public string CachedRelatedPoemPoetName { get; set; }
/// <summary>
/// related poem poet url
/// </summary>
public string CachedRelatedPoemPoetUrl { get; set; }
/// <summary>
/// related poem poet image
/// </summary>
public string CachedRelatedPoemPoetImage { get; set; }
/// <summary>
/// full title
/// </summary>
public string CachedRelatedPoemFullTitle { get; set; }
/// <summary>
/// full url
/// </summary>
public string CachedRelatedPoemFullUrl { get; set; }
/// <summary>
/// couplet 1 verse 1
/// </summary>
public string CoupletVerse1 { get; set; }
/// <summary>
/// is main part
/// </summary>
public bool CoupletVerse1ShouldBeEmphasized { get; set; }
/// <summary>
/// couplet 1 verse 2
/// </summary>
public string CoupletVerse2 { get; set; }
/// <summary>
/// is main part
/// </summary>
public bool CoupletVerse2ShouldBeEmphasized { get; set; }
/// <summary>
/// couplet 1 index
/// </summary>
public int? CoupletIndex { get; set; }
/// <summary>
/// related couplet 1 verse 1
/// </summary>
public string RelatedCoupletVerse1 { get; set; }
/// <summary>
/// is main part
/// </summary>
public bool RelatedCoupletVerse1ShouldBeEmphasized { get; set; }
/// <summary>
/// related couplet 1 verse 2
/// </summary>
public string RelatedCoupletVerse2 { get; set; }
/// <summary>
/// is main part
/// </summary>
public bool RelatedCoupletVerse2ShouldBeEmphasized { get; set; }
/// <summary>
/// related couplet 1 index
/// </summary>
public int? RelatedCoupletIndex { get; set; }
/// <summary>
/// description
/// </summary>
public string Note { get; set; }
/// <summary>
/// published (approved)
/// </summary>
public bool Published { get; set; }
/// <summary>
/// when a poem contains more than one quoted couplet from another one this should be more than 1
/// </summary>
public int SamePoemsQuotedCount { get; set; }
/// <summary>
/// poems (same poem) are claimed by both poets
/// </summary>
public bool ClaimedByBothPoets { get; set; }
/// <summary>
/// poet id (redundant for simplifying queries)
/// </summary>
public int PoetId { get; set; }
/// <summary>
/// related poet id
/// </summary>
public int? RelatedPoetId { get; set; }
/// <summary>
/// related indirectly
/// </summary>
public bool IndirectQuotation { get; set; }
/// <summary>
/// Suggested by user id
/// </summary>
public Guid? SuggestedById { get; set; }
/// <summary>
/// Suggested by user
/// </summary>
public virtual RAppUser SuggestedBy { get; set; }
/// <summary>
/// suggestion date
/// </summary>
public DateTime? SuggestionDate { get; set; }
/// <summary>
/// review date
/// </summary>
public DateTime? ReviewDate { get; set; }
/// <summary>
/// reviewer id
/// </summary>
public Guid? ReviewerUserId { get; set; }
/// <summary>
/// reviwer user id
/// </summary>
public virtual RAppUser ReviewerUser { get; set; }
/// <summary>
/// instead of deleting rejected quotes keep them for user (not published + not rejected means not reviewed)
/// </summary>
public bool Rejected { get; set; }
/// <summary>
/// review note
/// </summary>
public string ReviewNote { get; set; }
}
}