using DigitalData.Core.Abstractions.Client; namespace EnvelopeGenerator.Application.Configurations.GtxMessaging { /// /// https://www.gtx-messaging.com/en/api-docs/sms-rest-api/ /// public class SmsParams : IHttpClientOptions { //TODO: Add a regex check to init methods to reduce the chance of errors. public string Uri { get; set; } = "https://rest.gtx-messaging.net"; public string Path { get; set; } = "smsc/sendsms"; // path params public required string AuthKey { get; init; } public string? Format { get; init; } // header params public string? Accept { get; init; } public string? ContentType { get; init; } // query params public required string From { get; init; } public required Dictionary Texts { get; init; } public int? DlrMask { get; init; } public string? DlrUrl { get; init; } public string? Udh { get; init; } public int? Dcs { get; init; } public int? MClass { get; init; } public int? MWI { get; init; } public int? Coding { get; init; } public string? Charset { get; init; } public int? Validity { get; init; } public DateTime? ValidityTime { get; init; } public int? Deferred { get; init; } public DateTime? DeferredTime { get; init; } internal string AuthPath => Format is null ? AuthKey : string.Join('/', AuthKey, Format); } }