using API.Entities;
using API.Entities.Enums;
namespace API.DTOs.SideNav;
#nullable enable
public sealed record SideNavStreamDto
{
    public int Id { get; set; }
    public required string Name { get; set; }
    /// 
    /// Is System Provided
    /// 
    public bool IsProvided { get; set; }
    /// 
    /// Sort Order on the Dashboard
    /// 
    public int Order { get; set; }
    /// 
    /// If Not IsProvided, the appropriate smart filter
    /// 
    /// Encoded filter
    public string? SmartFilterEncoded { get; set; }
    public int? SmartFilterId { get; set; }
    /// 
    /// External Source Url if configured
    /// 
    public int ExternalSourceId { get; set; }
    public ExternalSourceDto? ExternalSource { get; set; }
    /// 
    /// For system provided
    /// 
    public SideNavStreamType StreamType { get; set; }
    public bool Visible { get; set; }
    public int? LibraryId { get; set; }
    /// 
    /// Only available for SideNavStreamType.Library
    /// 
    public LibraryDto? Library { get; set; }
}