Add the section content models (Hero, About, Skills, Projects, Goals, Experience, Documents, Contact) with per-field character limits

This commit is contained in:
Francesco Lorenzo D'Amico
2026-09-11 13:36:55 +02:00
parent b3eb66b2cb
commit 27b0bd67c4
8 changed files with 326 additions and 0 deletions
@@ -0,0 +1,41 @@
using System.ComponentModel.DataAnnotations;
namespace BewerbungsSeite.Models.SiteContent;
/// <summary>Bereich "Ueber mich" (section id="about").</summary>
public class AboutSection
{
[StringLength(ContentLimits.Url, ErrorMessage = ContentLimits.TooLongMessage)]
public string Image { get; set; } = string.Empty;
[StringLength(ContentLimits.AltText, ErrorMessage = ContentLimits.TooLongMessage)]
public string ImageAlt { get; set; } = string.Empty;
[StringLength(ContentLimits.Kicker, ErrorMessage = ContentLimits.TooLongMessage)]
public string Kicker { get; set; } = string.Empty;
[StringLength(ContentLimits.Heading, ErrorMessage = ContentLimits.TooLongMessage)]
public string TitleLine1 { get; set; } = string.Empty;
[StringLength(ContentLimits.Heading, ErrorMessage = ContentLimits.TooLongMessage)]
public string TitleLine2 { get; set; } = string.Empty;
/// <summary>Hervorgehobener Teil der zweiten Titelzeile.</summary>
[StringLength(ContentLimits.Heading, ErrorMessage = ContentLimits.TooLongMessage)]
public string TitleLine2Highlight { get; set; } = string.Empty;
[StringLength(ContentLimits.ParagraphText, ErrorMessage = ContentLimits.TooLongMessage)]
public string Text { get; set; } = string.Empty;
public List<FactItem> Facts { get; set; } = new();
}
/// <summary>Eine Zeile der Kurzuebersicht rechts unter dem Text.</summary>
public class FactItem
{
[StringLength(ContentLimits.FactLabel, ErrorMessage = ContentLimits.TooLongMessage)]
public string Label { get; set; } = string.Empty;
[StringLength(ContentLimits.FactValue, ErrorMessage = ContentLimits.TooLongMessage)]
public string Value { get; set; } = string.Empty;
}