41 lines
1.3 KiB
C#
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";
|
|
}
|