namespace Kbx.Shared.Providers; public enum KbxProviderResultKind { Success, NoData, TransientFailure, PermanentFailure } public sealed record KbxProviderResult(KbxProviderResultKind Kind,T? Value=null,string? Code=null,string? Message=null,int? HttpStatus=null) { public bool IsSuccess => Kind is KbxProviderResultKind.Success or KbxProviderResultKind.NoData; } public interface IKbxProviderSecretStore { ValueTask GetRequiredAsync(string configurationKey, CancellationToken cancellationToken); } public interface IKbxExternalProviderAdapter { string ProviderId { get; } } public sealed record KrxApprovedServiceRequest(HttpMethod Method, Uri ServiceUri, IReadOnlyDictionary Query, string? Body = null); public sealed record KisCurrentPriceRequest(string MarketDivisionCode,string StockCode,bool Sandbox=false);