using System.ComponentModel.DataAnnotations; using PlotLine.Models; namespace PlotLine.ViewModels; public sealed class OnboardingWizardViewModel { public string CurrentStep { get; set; } = OnboardingSteps.Welcome; public int StepNumber { get; set; } = 1; public int TotalSteps { get; set; } = 3; public string? WritingJourney { get; set; } public string? WritingSoftware { get; set; } public IReadOnlyList Options { get; set; } = []; } public sealed class OnboardingOptionViewModel { public string Value { get; init; } = string.Empty; public string Title { get; init; } = string.Empty; public string Description { get; init; } = string.Empty; public string? Badge { get; init; } } public sealed class WritingJourneyOnboardingForm { [Required(ErrorMessage = "Choose the closest writing stage before continuing.")] public string? WritingJourney { get; set; } } public sealed class WritingSoftwareOnboardingForm { [Required(ErrorMessage = "Choose the software you write in before continuing.")] public string? WritingSoftware { get; set; } } public sealed class OnboardingNudgeViewModel { public bool ShouldShow { get; init; } public string ButtonText { get; init; } = "Start setup"; }