using MongoDB.Bson;

namespace adas_core.Domain.Models.MongoModels;

/// <summary>
/// Represents a camera, typically used to capture or render visual content in a scene or application.
/// </summary>
public class Camera
{
    public ObjectId Id { get; set; }
    public string? Name { get; set; } = string.Empty;

    public Stream? Streams { get; set; }

    public bool Ptz { get; set; }

    public string? Driver { get; set; }

    public string? Ip { get; set; }

    public string? Username { get; set; }

    public string? Password { get; set; }
    public bool InUse { get; private set; }
}

/// <summary>
/// Represents a sequence of bytes that can be read from or written to.
/// </summary>
public class Stream
{
    public string? Rtsp { get; set; }
    public string? Jpeg { get; set; }
    public string? WebRtc { get; set; }
    public string? Hls { get; set; }
    public string? Mp4 { get; set; }
}