using DigitalData.Core.Abstractions;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
namespace EnvelopeGenerator.Application.DTOs;
///
/// Data Transfer Object representing configuration settings.
///
[ApiExplorerSettings(IgnoreApi = true)]
public class ConfigDto : IUnique
{
///
/// Gets or sets the path to the document.
///
public string DocumentPath { get; set; }
///
/// Gets or sets the sending profile identifier.
///
public int SendingProfile { get; set; }
///
/// Gets or sets the signature host URL or name.
///
public string SignatureHost { get; set; }
///
/// Gets or sets the name of the external program.
///
public string ExternalProgramName { get; set; }
///
/// Gets or sets the path where exports will be saved.
///
public string ExportPath { get; set; }
///
/// Gets the ID of the configuration.
/// This DTO represents a single row in the database and does not support an ID.
///
[NotMapped]
[JsonIgnore]
[Obsolete("Configuration does not have an ID; it represents a single table in the database.")]
public int Id => throw new InvalidOperationException("This configuration does not support an ID as it represents a single row in the database.");
}