using LinqToDB.Mapping;

namespace MediaManager.database.Tables;

[Table(Name = "Shows")]
public class Show {
	[Column(Name = "ShowID"), PrimaryKey, Identity, NotNull] public int         ShowId         { get; set; }
	[Column(Name = "UserID"), NotNull]                       public int         UserId         { get; set; }
	[Column(Name = "Year"), NotNull]                         public int         Year           { get; set; }
	[Column(Name = "Title"), NotNull]                        public string      Title          { get; set; }
	[Column(Name = "Rating")]                                public int         Rating         { get; set; }
	[Column(Name = "Rewatchability")]                        public int         Rewatchability { get; set; }
	[Column(Name = "TotalEpisodes")]                         public int         TotalEpisodes  { get; set; }
	[Column(Name = "SeenEpisodes")]                          public int         SeenEpisodes   { get; set; }
	[Column(Name = "WatchCount")]                            public int         WatchCount     { get; set; }
	[Column(Name = "LastSeen")]                              public DateTime    LastSeen       { get; set; }
	[Column(Name = "Comment")]                               public string      Comment        { get; set; }
	[Column(Name = "WatchStatus")]                           public WatchStatus WatchStatus    { get; set; }
}

public enum WatchStatus {
	Unwatched  = 1,
	FirstWatch = 2,
	Waiting    = 3,
	Finished   = 4,
	Rewatch    = 5
}
