using System.Security.Claims;

namespace DocuMed.Common.Models.Claims;
public static class ApplicationClaims
{
    public static ClaimDto ManageUniversities { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ManageUniversities,
        Title = "دسترسی کامل به مجموعه ها",
        Detail = "دسترسی به افزودن و مدیریت مجموعه های سیستم"
    };
    public static ClaimDto ViewUniversities { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ViewUniversities,
        Title = "مشاهده مجموعه ها",
        Detail = "دسترسی به مشاهده مجموعه ها"
    };

    public static ClaimDto ManageCities { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ManageCities,
        Title = "دسترسی کامل به شیفت ها",
        Detail = "دسترسی به افزودن و مدیریت شیفت ها فروشگاه شما"
    };
    public static ClaimDto ViewCities { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ViewCities,
        Title = "دسترسی مشاهده به شیفت ها",
        Detail = "قابلیت مشاهده شیفت های مجموعه"
    };
    public static ClaimDto ManageMedicalHistories { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ManageMedicalHistories,
        Title = "دسترسی کامل به شیفت بندی ها",
        Detail = "دسترسی به افزودن و مدیریت شیفت بندی فروشگاه شما"
    };

    public static ClaimDto ManageMedicalHistoryTemplates { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ManageMedicalHistoryTemplates,
        Title = "دسترسی کامل به وظایف",
        Detail = "دسترسی به افزودن و مدیریت وظایف فروشگاه شما"
    };
    public static ClaimDto ManageUsers { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ManageUsers,
        Title = "دسترسی مشاهده وظایف",
        Detail = "دسترسی مشاهده وظایف مجموعه شما"
    };
    public static ClaimDto ManageRoles { get; } = new ClaimDto
    {
        Type = CustomClaimType.Permission,
        Value = ApplicationPermission.ManageRoles,
        Title = "دسترسی کامل به فعالیت ها",
        Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما"
    };


    public static List<Claim> AllClaims = new List<Claim>
    {
        ManageRoles.GetClaim,
        ManageUsers.GetClaim,
        ManageMedicalHistoryTemplates.GetClaim,

        ManageMedicalHistories.GetClaim,
        ViewCities.GetClaim,
        ManageCities.GetClaim,

        ViewUniversities.GetClaim,
        ManageUniversities.GetClaim,
    };

    public static List<Claim> StudentClaims = new List<Claim>
    {
        ManageMedicalHistoryTemplates.GetClaim,
        ManageMedicalHistories.GetClaim,
        ViewCities.GetClaim,
        ViewUniversities.GetClaim,
    };

    public static List<Claim> ManagerClaims = new List<Claim>
    {
        ManageRoles.GetClaim,
        ManageUsers.GetClaim,
        ManageMedicalHistoryTemplates.GetClaim,

        ManageMedicalHistories.GetClaim,
        ViewCities.GetClaim,
        ManageCities.GetClaim,
    };
}
