using System;
using System.Collections.Generic;
namespace Jellyfin.Plugin.WatchedTogether.Models;
///
/// A configured group, resolved for display.
///
public class GroupDto
{
///
/// Gets or sets the shared account identifier.
///
public Guid SharedUserId { get; set; }
///
/// Gets or sets the shared account's username.
///
public string SharedUsername { get; set; } = string.Empty;
///
/// Gets or sets the group's members.
///
public IReadOnlyList Members { get; set; } = Array.Empty();
///
/// Gets or sets a value indicating whether unwatched state propagates too.
///
public bool SyncUnwatched { get; set; }
///
/// Gets or sets a value indicating whether play counts are raised on watch.
///
public bool SyncPlayCount { get; set; }
///
/// Gets or sets a value indicating whether the group is suspended.
///
public bool IsDisabled { get; set; }
///
/// Gets or sets a value indicating whether the rating cap is the strictest member's.
///
public bool InheritParentalRating { get; set; } = true;
///
/// Gets or sets the chosen rating cap when not inheriting, as Jellyfin's numeric score
/// (null for none).
///
public int? ParentalRatingCap { get; set; }
///
/// Gets or sets the strictest member's rating cap, or null if no member has one - in
/// which case there is nothing to choose.
///
public int? StrictestMemberRating { get; set; }
///
/// Gets or sets the loosest member's rating cap, or null if some member has none. The
/// chosen cap can go no looser than this: past it nobody could unlock the account.
///
public int? LoosestMemberRating { get; set; }
///
/// Gets or sets the restrictions the shared account currently has.
///
public RestrictionsDto? Restrictions { get; set; }
}