PlotDirector/PlotLine/ViewModels/OnboardingViewModels.cs
2026-07-03 21:04:06 +01:00

41 lines
1.3 KiB
C#

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<OnboardingOptionViewModel> 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";
}