Files
BackOffice/src/BackOffice/Pages/Content/Components/SettingsModels/PageSettingsModels.cs
T
masoodafar-web 6147499f9c
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m7s
feat: replace raw JSON editor with Shopify-style typed settings editors
- Create PageSettingsModels.cs: typed DTOs for landing, about, contact, licenses
- LandingSettingsEditor: accordion sections for hero buttons, trust badges, steps,
  features, stats, testimonials, FAQs, CTA — all with add/remove list management
- AboutSettingsEditor: vision/mission text + icon fields + section titles
- ContactSettingsEditor: address, phone, email, working hours + social media links
- LicensesSettingsEditor: page description + display style selector
- PageSettingsEditDialog: auto-switch editor by PageKey, JSON↔Model serialize/deserialize
- Fallback to raw JSON textarea for unknown page keys
2026-02-17 23:50:34 +03:30

109 lines
4.2 KiB
C#

namespace BackOffice.Pages.Content.Components.SettingsModels;
// ══════════════════════════════════════════════════════════════
// LANDING PAGE
// ══════════════════════════════════════════════════════════════
public class LandingSettingsModel
{
public string? HeroButtonPrimaryText { get; set; }
public string? HeroButtonSecondaryText { get; set; }
public List<TrustBadgeModel> TrustBadges { get; set; } = new();
public string? StepsTitle { get; set; }
public List<StepModel> Steps { get; set; } = new();
public string? FeaturesTitle { get; set; }
public List<FeatureModel> Features { get; set; } = new();
public string? StatsTitle { get; set; }
public List<StatModel> Stats { get; set; } = new();
public string? TestimonialsTitle { get; set; }
public List<TestimonialModel> Testimonials { get; set; } = new();
public string? FaqTitle { get; set; }
public List<FaqModel> Faqs { get; set; } = new();
public string? CtaTitle { get; set; }
public string? CtaDescription { get; set; }
public string? CtaButtonText { get; set; }
public bool? FeaturedBlogEnabled { get; set; }
}
public class TrustBadgeModel
{
public string? IconName { get; set; }
public string? Text { get; set; }
}
public class StepModel
{
public string? Title { get; set; }
public string? Description { get; set; }
}
public class FeatureModel
{
public string? IconName { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
}
public class StatModel
{
public string? Label { get; set; }
public double Value { get; set; }
public string? Suffix { get; set; }
public string? Color { get; set; }
}
public class TestimonialModel
{
public string? Quote { get; set; }
public string? Name { get; set; }
public string? Role { get; set; }
}
public class FaqModel
{
public string? Question { get; set; }
public string? Answer { get; set; }
}
// ══════════════════════════════════════════════════════════════
// ABOUT PAGE
// ══════════════════════════════════════════════════════════════
public class AboutSettingsModel
{
public string? VisionTitle { get; set; }
public string? VisionText { get; set; }
public string? VisionIcon { get; set; }
public string? MissionTitle { get; set; }
public string? MissionText { get; set; }
public string? MissionIcon { get; set; }
public string? ValuesTitle { get; set; }
public string? TeamTitle { get; set; }
}
// ══════════════════════════════════════════════════════════════
// CONTACT PAGE
// ══════════════════════════════════════════════════════════════
public class ContactSettingsModel
{
public string? Address { get; set; }
public string? Phone { get; set; }
public string? Email { get; set; }
public string? WorkingHours { get; set; }
public string? TelegramUrl { get; set; }
public string? InstagramUrl { get; set; }
public string? LinkedinUrl { get; set; }
public string? WhatsappUrl { get; set; }
}
// ══════════════════════════════════════════════════════════════
// LICENSES PAGE
// ══════════════════════════════════════════════════════════════
public class LicensesSettingsModel
{
public string? PageDescription { get; set; }
public string? DisplayStyle { get; set; }
}