#22 basic ganjoor db structues (no migrations yet)

This commit is contained in:
Hamid Reza Mohammadi 2020-10-22 14:28:38 +03:30
parent e808966f9f
commit 78822dea8d
7 changed files with 409 additions and 0 deletions

View File

@ -12,6 +12,7 @@ using RSecurityBackend.DbContext;
using RSecurityBackend.Models.Auth.Db;
using System;
using Dapper;
using RMuseum.Models.Ganjoor;
namespace RMuseum.DbContext
{
@ -149,5 +150,25 @@ namespace RMuseum.DbContext
/// </summary>
public DbSet<UserNarrationProfile> UserNarrationProfiles { get; set; }
/// <summary>
/// Ganjoor Poets
/// </summary>
public DbSet<GanjoorPoet> GanjoorPoets { get; set; }
/// <summary>
/// Ganjoor Categories
/// </summary>
public DbSet<GanjoorCat> GanjoorCategories { get; set; }
/// <summary>
/// Ganjoor Poems
/// </summary>
public DbSet<GanjoorPoem> GanjoorPoems { get; set; }
/// <summary>
/// Ganjoor Verses
/// </summary>
public DbSet<GanjoorVerse> GanjoorVerses { get; set; }
}
}

View File

@ -0,0 +1,47 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace RMuseum.Models.Ganjoor
{
/// <summary>
/// Ganjoor Category
/// </summary>
public class GanjoorCat
{
/// <summary>
/// id
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
/// <summary>
/// poet_id
/// </summary>
public int PoetId { get; set; }
/// <summary>
/// poet
/// </summary>
public GanjoorPoet Poet { get; set; }
/// <summary>
/// text
/// </summary>
public string Title { get; set; }
/// <summary>
/// parent_id
/// </summary>
public int? ParentId { get; set; }
/// <summary>
/// parent
/// </summary>
public virtual GanjoorCat Parent { get; set; }
/// <summary>
/// url => slug
/// </summary>
public string UrlSlug { get; set; }
}
}

View File

@ -0,0 +1,42 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace RMuseum.Models.Ganjoor
{
/// <summary>
/// Ganjoor Poem
/// </summary>
public class GanjoorPoem
{
/// <summary>
/// id
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
/// <summary>
/// cat-id
/// </summary>
public int CatId { get; set; }
/// <summary>
/// cat
/// </summary>
public GanjoorCat Cat { get; set; }
/// <summary>
/// title
/// </summary>
public string Title { get; set; }
/// <summary>
/// cat + parent cats title + title
/// </summary>
public string FullTitle { get; set; }
/// <summary>
/// url => slug
/// </summary>
public string UrlSlug { get; set; }
}
}

View File

@ -0,0 +1,32 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace RMuseum.Models.Ganjoor
{
/// <summary>
/// Ganjoor Poet
/// </summary>
/// <remarks>
/// cat_id field is removed, it is retrievable by querying <see cref="RMuseum.Models.Ganjoor.GanjoorCat"/>
/// where <see cref="RMuseum.Models.Ganjoor.GanjoorCat.PoetId"/> == <see cref="RMuseum.Models.Ganjoor.GanjoorPoet.Id"/> and
/// <see cref="RMuseum.Models.Ganjoor.GanjoorCat.Parent"/> == null
/// </remarks>
public class GanjoorPoet
{
/// <summary>
/// id
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
/// <summary>
/// name
/// </summary>
public string Name { get; set; }
/// <summary>
/// description
/// </summary>
public string Description { get; set; }
}
}

View File

@ -0,0 +1,38 @@
namespace RMuseum.Models.Ganjoor
{
/// <summary>
/// Ganjoor Verse
/// </summary>
public class GanjoorVerse
{
/// <summary>
/// global id, auto generated (missing in Ganjoor Desktop database)
/// </summary>
public int Id { get; set; }
/// <summary>
/// poem_id
/// </summary>
public int PoemId { get; set; }
/// <summary>
/// poem
/// </summary>
public GanjoorPoem Poem { get; set; }
/// <summary>
/// vorder
/// </summary>
public int VOrder { get; set; }
/// <summary>
/// position
/// </summary>
public VersePosition VersePosition { get; set; }
/// <summary>
/// text
/// </summary>
public string Text { get; set; }
}
}

View File

@ -0,0 +1,36 @@
namespace RMuseum.Models.Ganjoor
{
/// <summary>
/// معنی فیلد position در جدول verse با توجه به مقادیر این ساختار داده مشخص می شود.
/// </summary>
/// <remarks>
/// imported from Desktop Ganjoor source
/// </remarks>
public enum VersePosition
{
/// <summary>
/// First Verse in a normal Beyt
/// </summary>
Right = 0,//مصرع اول
/// <summary>
/// Second Verse in a normal Beyt
/// </summary>
Left = 1,// مصرع دوم
/// <summary>
/// First Verse or the only one in a Band Beyt
/// </summary>
CenteredVerse1 = 2,// مصرع اول یا تنهای ابیات ترجیع یا ترکیب
/// <summary>
/// Second Verse in a Band Beyt
/// </summary>
CenteredVerse2 = 3,// مصرع دوم ابیات ترجیع یا ترکیب
/// <summary>
/// Free form verse
/// </summary>
Single = 4, //مصرعهای شعرهای نیمایی یا آزاد
/// <summary>
/// Non-poem paragraph
/// </summary>
Paragraph = -1, //نثر
}
}

View File

@ -902,6 +902,26 @@
User Narration Profiles
</summary>
</member>
<member name="P:RMuseum.DbContext.RMuseumDbContext.GanjoorPoets">
<summary>
Ganjoor Poets
</summary>
</member>
<member name="P:RMuseum.DbContext.RMuseumDbContext.GanjoorCategories">
<summary>
Ganjoor Categories
</summary>
</member>
<member name="P:RMuseum.DbContext.RMuseumDbContext.GanjoorPoems">
<summary>
Ganjoor Poems
</summary>
</member>
<member name="P:RMuseum.DbContext.RMuseumDbContext.GanjoorVerses">
<summary>
Ganjoor Verses
</summary>
</member>
<member name="T:RMuseum.Models.Artifact.PublishStatus">
<summary>
Items or pictures status
@ -2716,6 +2736,179 @@
Captcha Value
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.GanjoorCat">
<summary>
Ganjoor Category
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.Id">
<summary>
id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.PoetId">
<summary>
poet_id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.Poet">
<summary>
poet
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.Title">
<summary>
text
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.ParentId">
<summary>
parent_id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.Parent">
<summary>
parent
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorCat.UrlSlug">
<summary>
url => slug
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.GanjoorPoem">
<summary>
Ganjoor Poem
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoem.Id">
<summary>
id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoem.CatId">
<summary>
cat-id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoem.Cat">
<summary>
cat
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoem.Title">
<summary>
title
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoem.FullTitle">
<summary>
cat + parent cats title + title
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoem.UrlSlug">
<summary>
url => slug
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.GanjoorPoet">
<summary>
Ganjoor Poet
</summary>
<remarks>
cat_id field is removed, it is retrievable by querying <see cref="T:RMuseum.Models.Ganjoor.GanjoorCat"/>
where <see cref="P:RMuseum.Models.Ganjoor.GanjoorCat.PoetId"/> == <see cref="P:RMuseum.Models.Ganjoor.GanjoorPoet.Id"/> and
<see cref="P:RMuseum.Models.Ganjoor.GanjoorCat.Parent"/> == null
</remarks>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoet.Id">
<summary>
id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoet.Name">
<summary>
name
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorPoet.Description">
<summary>
description
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.GanjoorVerse">
<summary>
Ganjoor Verse
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorVerse.Id">
<summary>
global id, auto generated (missing in Ganjoor Desktop database)
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorVerse.PoemId">
<summary>
poem_id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorVerse.Poem">
<summary>
poem
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorVerse.VOrder">
<summary>
vorder
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorVerse.VersePosition">
<summary>
position
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorVerse.Text">
<summary>
text
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.VersePosition">
<summary>
معنی فیلد position در جدول verse با توجه به مقادیر این ساختار داده مشخص می شود.
</summary>
<remarks>
imported from Desktop Ganjoor source
</remarks>
</member>
<member name="F:RMuseum.Models.Ganjoor.VersePosition.Right">
<summary>
First Verse in a normal Beyt
</summary>
</member>
<member name="F:RMuseum.Models.Ganjoor.VersePosition.Left">
<summary>
Second Verse in a normal Beyt
</summary>
</member>
<member name="F:RMuseum.Models.Ganjoor.VersePosition.CenteredVerse1">
<summary>
First Verse or the only one in a Band Beyt
</summary>
</member>
<member name="F:RMuseum.Models.Ganjoor.VersePosition.CenteredVerse2">
<summary>
Second Verse in a Band Beyt
</summary>
</member>
<member name="F:RMuseum.Models.Ganjoor.VersePosition.Single">
<summary>
Free form verse
</summary>
</member>
<member name="F:RMuseum.Models.Ganjoor.VersePosition.Paragraph">
<summary>
Non-poem paragraph
</summary>
</member>
<member name="T:RMuseum.Models.ImportJob.ImportJob">
<summary>
Import Job