namespace PlotLine.Models; public static class OnboardingSteps { public const string Welcome = "Welcome"; public const string WritingJourney = "WritingJourney"; public const string WritingSoftware = "WritingSoftware"; public const string Project = "Project"; public const string Book = "Book"; public const string NextPathPreview = "NextPathPreview"; public const string Complete = "Complete"; } public static class WritingJourneyValues { public const string PlanningNewStory = "PlanningNewStory"; public const string AlreadyStarted = "AlreadyStarted"; public const string ManuscriptMostlyComplete = "ManuscriptMostlyComplete"; } public static class WritingSoftwareValues { public const string MicrosoftWord = "MicrosoftWord"; public const string GoogleDocs = "GoogleDocs"; public const string Scrivener = "Scrivener"; public const string LibreOfficeOpenOffice = "LibreOfficeOpenOffice"; public const string MarkdownObsidian = "MarkdownObsidian"; public const string Other = "Other"; } public sealed class UserOnboardingState { public int UserOnboardingStateID { get; set; } public int UserID { get; set; } public DateTime OnboardingStartedUtc { get; set; } public DateTime? OnboardingCompletedUtc { get; set; } public string CurrentStep { get; set; } = OnboardingSteps.Welcome; public string? WritingJourney { get; set; } public string? WritingSoftware { get; set; } public bool? UsesWordCompanion { get; set; } public int? ProjectID { get; set; } public int? BookID { get; set; } public DateTime CreatedUtc { get; set; } public DateTime UpdatedUtc { get; set; } }