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