divan/RMuseum/Services/IDiwanNumberingService.cs
Anas Rashid e8f2306422 Rename Ganjoor -> Diwan throughout the code
Projects (GanjooRazor -> DiwanRazor, GanjoorService.sln -> DiwanService.sln), files,
folders, classes, namespaces, settings, API routes (/api/diwan) and DB tables (Diwan*).
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

80 lines
2.5 KiB
C#

using RMuseum.Models.Diwan;
using RMuseum.Models.Diwan.ViewModels;
using RSecurityBackend.Models.Generic;
using System.Threading.Tasks;
namespace RMuseum.Services
{
/// <summary>
/// numbering service
/// </summary>
public interface IDiwanNumberingService
{
/// <summary>
/// add numbering
/// </summary>
/// <param name="numbering"></param>
/// <returns></returns>
Task<RServiceResult<DiwanNumbering>> AddNumberingAsync(DiwanNumbering numbering);
/// <summary>
/// update an existing numbering (only name)
/// </summary>
/// <param name="updated"></param>
/// <returns></returns>
Task<RServiceResult<bool>> UpdateNumberingAsync(DiwanNumbering updated);
/// <summary>
/// delete numbering
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<RServiceResult<bool>> DeleteNumberingAsync(int id);
/// <summary>
/// get numbering by id
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<RServiceResult<DiwanNumbering>> GetNumberingAsync(int id);
/// <summary>
/// get all numberings
/// </summary>
/// <returns></returns>
Task<RServiceResult<DiwanNumbering[]>> GetNumberingsAsync();
/// <summary>
/// get numberings for a cat
/// </summary>
/// <returns></returns>
Task<RServiceResult<DiwanNumbering[]>> GetNumberingsForCatAsync(int catId);
/// <summary>
/// get numberings for direct subcats of parent cat
/// </summary>
/// <returns></returns>
Task<RServiceResult<DiwanNumbering[]>> GetNumberingsForDirectSubCatsAsync(int parentCatId);
/// <summary>
/// get all numbering patterns for a couplet
/// </summary>
/// <param name="poemId"></param>
/// <param name="coupletIndex"></param>
/// <returns></returns>
Task<RServiceResult<DiwanCoupletNumberViewModel[]>> GetNumberingsForCouplet(int poemId, int coupletIndex);
/// <summary>
/// start counting
/// </summary>
/// <returns></returns>
RServiceResult<bool> Recount(int numberingId);
/// <summary>
/// generate missing default numberings and start counting
/// </summary>
/// <returns></returns>
RServiceResult<bool> GenerateMissingDefaultNumberings();
}
}