📄 src/Integrations/FaceCamera/CameraOptions.cs
using System;
using System.ComponentModel.DataAnnotations;
using Microsoft.Extensions.Options;

namespace MMirror.Integrations.FaceCamera;

public sealed class CameraOptions
{
    [Required]
    public required string Model { get; set; }

    [Required]
    public required string Name { get; set; }

    [Range(0, int.MaxValue)]
    public int Width { get; set; } = 640;

    [Range(0, int.MaxValue)]
    public int Height { get; set; } = 480;

    [Range(0.0f, 1.0f)]
    public float Threshold { get; set; } = 0.7f;

    public TimeSpan Interval { get; set; } = TimeSpan.FromSeconds(1);
}

[OptionsValidator]
internal sealed partial class CameraOptionsValidator : IValidateOptions<CameraOptions>;