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