feat(application): commands/queries + IChargeableCharConfigService (PRC-001)

This commit is contained in:
2026-04-20 12:24:06 -03:00
parent ded76fcdc7
commit f1b38cd9ce
29 changed files with 1538 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
namespace SIGCM2.Application.Pricing.ChargeableChars;
/// <summary>
/// PRC-001 — Application service for resolving active chargeable-char config for a Medio.
///
/// Priority rule: per-medio row overrides global (MedioId IS NULL) for the same Symbol.
/// Returns a dictionary keyed by Symbol for O(1) lookup during word-count pricing.
/// </summary>
public interface IChargeableCharConfigService
{
/// <summary>
/// Returns the resolved active config for the given medio as of the given date.
/// Per-medio rows take priority over global rows for the same Symbol.
/// Global rows are used as fallback when no per-medio row exists for that Symbol.
/// Returns an empty dictionary if no config exists at all.
/// </summary>
Task<IReadOnlyDictionary<string, ChargeableCharSnapshot>> GetActiveConfigForMedioAsync(
long medioId,
DateOnly asOf,
CancellationToken ct = default);
}