//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
    using LukeHagar.PlexAPI.SDK.Models.Requests;
    using LukeHagar.PlexAPI.SDK.Utils;
    using Newtonsoft.Json;
    using System.Collections.Generic;
    
    public class Friend
    {

        /// <summary>
        /// The account email address
        /// </summary>
        [JsonProperty("email")]
        public string Email { get; set; } = default!;

        /// <summary>
        /// The account full name
        /// </summary>
        [JsonProperty("friendlyName", NullValueHandling = NullValueHandling.Include)]
        public string? FriendlyName { get; set; }

        /// <summary>
        /// If the account is a Plex Home user
        /// </summary>
        [JsonProperty("home")]
        public bool Home { get; set; } = default!;

        /// <summary>
        /// The Plex account ID
        /// </summary>
        [JsonProperty("id")]
        public int Id { get; set; } = default!;

        /// <summary>
        /// If the account is a Plex Home managed user
        /// </summary>
        [JsonProperty("restricted")]
        public bool? Restricted { get; set; } = false;

        [JsonProperty("sharedServers")]
        public List<SharedServers> SharedServers { get; set; } = default!;

        [JsonProperty("sharedSources")]
        public List<SharedSources> SharedSources { get; set; } = default!;

        /// <summary>
        /// Current friend request status
        /// </summary>
        [JsonProperty("status")]
        public Status Status { get; set; } = default!;

        /// <summary>
        /// URL of the account thumbnail
        /// </summary>
        [JsonProperty("thumb")]
        public string Thumb { get; set; } = default!;

        /// <summary>
        /// The title of the account (username or friendly name)
        /// </summary>
        [JsonProperty("title")]
        public string Title { get; set; } = default!;

        /// <summary>
        /// The account username
        /// </summary>
        [JsonProperty("username")]
        public string Username { get; set; } = default!;

        /// <summary>
        /// The account Universally Unique Identifier (UUID)
        /// </summary>
        [JsonProperty("uuid")]
        public string Uuid { get; set; } = default!;
    }
}