Files
KArtSell.Aegis/docs/Design/kbx-foundation-v60-status-canonical-contract-hardening/backend/Shared/ExternalData/KbxExternalDataContracts.cs
T
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

49 lines
1.7 KiB
C#

using System.Text.Json;
namespace Kbx.Shared.ExternalData;
public enum KbxExternalDataState { Fresh, Stale, Expired, Unavailable }
public enum KbxExternalDataFreshnessMode { Strict, StaleWhileRevalidate, ProviderDefined }
public sealed record KbxExternalDataProvenance(
string DatasetId,
string ProviderId,
string ProviderOperationId,
string SourceLabel,
KbxExternalDataState State,
DateTimeOffset? ProviderObservedAt,
DateTimeOffset RequestedAt,
DateTimeOffset ReceivedAt,
DateTimeOffset IngestedAt,
DateTimeOffset? FreshUntil,
DateTimeOffset? UsableUntil,
string PayloadSha256,
string NormalizerVersion,
bool CacheHit,
bool RefreshInProgress = false,
string? Warning = null);
public sealed record KbxExternalDataEnvelope<T>(T? Data, KbxExternalDataProvenance Provenance);
public sealed record KbxExternalDataCacheEntry(
Guid TenantId,
string DatasetId,
string ProviderId,
string CacheKey,
JsonDocument RequestDescriptor,
JsonDocument NormalizedData,
DateTimeOffset? ProviderObservedAt,
DateTimeOffset RequestedAt,
DateTimeOffset ReceivedAt,
DateTimeOffset IngestedAt,
DateTimeOffset? FreshUntil,
DateTimeOffset? UsableUntil,
string PayloadSha256,
string NormalizerVersion,
string State,
string CorrelationId);
public sealed record KbxCompanyProfileSnapshot(string CorpCode, string CorpName, string? StockCode, string? BusinessNumber);
public sealed record KbxDisclosureSummarySnapshot(string ReceiptNo, string CorpCode, string CorpName, string ReportName, string ReceiptDate);
public sealed record KbxMarketPriceSnapshot(string MarketDivisionCode, string StockCode, decimal CurrentPrice);