// Kyoo - A portable and vast media library solution. // Copyright (c) Kyoo. // // See AUTHORS.md and LICENSE file in the project root for full license information. // // Kyoo is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // Kyoo is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Kyoo. If not, see . using System; using Kyoo.Abstractions.Models.Attributes; namespace Kyoo.Abstractions.Models { /// /// Has the user started watching, is it planned? /// public enum WatchStatus { /// /// The user has already watched this. /// Completed, /// /// The user started watching this but has not finished. /// Watching, /// /// The user does not plan to continue watching. /// Droped, /// /// The user has not started watching this but plans to. /// Planned, } /// /// Metadata of what an user as started/planned to watch. /// public class WatchInfo : IAddedDate { /// /// The ID of the user that started watching this episode. /// [SerializeIgnore] public Guid UserId { get; set; } /// /// The user that started watching this episode. /// [SerializeIgnore] public User User { get; set; } /// /// The ID of the episode started. /// [SerializeIgnore] public Guid? EpisodeId { get; set; } /// /// The started. /// [SerializeIgnore] public Episode? Episode { get; set; } /// /// The ID of the movie started. /// [SerializeIgnore] public Guid? MovieId { get; set; } /// /// The started. /// [SerializeIgnore] public Movie? Movie { get; set; } /// [SerializeIgnore] public DateTime AddedDate { get; set; } /// /// Has the user started watching, is it planned? /// public WatchStatus Status { get; set; } /// /// Where the player has stopped watching the episode (in seconds). /// /// /// Null if the status is not Watching. /// public int? WatchedTime { get; set; } } }