Updated project and solution files to rename and restructure `DocumentOperator` to `DocumentService`. Modified project references in `DocumentService.API.csproj`, `DocumentService.Application.csproj`, and `DocumentService.Infrastructure.csproj` to reflect the new naming convention. Updated `DocumentService.sln` to remove old project references, add new ones, and adjust configuration and nested project mappings accordingly. This change aligns the project structure with the new naming convention.
94 lines
3.4 KiB
C#
94 lines
3.4 KiB
C#
namespace DocumentService.Application.Common.DTOs;
|
|
|
|
/// <summary>
|
|
/// Swiss QR Bill data transfer object (mapped from Codecrete Bill)
|
|
/// </summary>
|
|
public record SwissQrBillDto
|
|
{
|
|
/// <summary>QR Bill standard version (e.g., "V2_0")</summary>
|
|
public required string Version { get; init; }
|
|
|
|
/// <summary>Payment amount (null if not specified)</summary>
|
|
public decimal? Amount { get; init; }
|
|
|
|
/// <summary>Payment currency (CHF or EUR)</summary>
|
|
public required string Currency { get; init; }
|
|
|
|
/// <summary>Creditor's IBAN account number</summary>
|
|
public required string Account { get; init; }
|
|
|
|
/// <summary>Creditor address</summary>
|
|
public required AddressDto Creditor { get; init; }
|
|
|
|
/// <summary>Payment reference type: "QRR", "SCOR", or "NON"</summary>
|
|
public required string ReferenceType { get; init; }
|
|
|
|
/// <summary>Payment reference (format depends on ReferenceType)</summary>
|
|
public string? Reference { get; init; }
|
|
|
|
/// <summary>Debtor address (optional)</summary>
|
|
public AddressDto? Debtor { get; init; }
|
|
|
|
/// <summary>Additional unstructured message (max 140 chars)</summary>
|
|
public string? UnstructuredMessage { get; init; }
|
|
|
|
/// <summary>Additional structured bill information</summary>
|
|
public string? BillInformation { get; init; }
|
|
|
|
/// <summary>Alternative payment schemes (max 2)</summary>
|
|
public IReadOnlyList<AlternativeSchemeDto>? AlternativeSchemes { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Address data transfer object (mapped from Codecrete Address)
|
|
/// </summary>
|
|
public record AddressDto
|
|
{
|
|
/// <summary>Address type: "Structured" or "CombinedElements"</summary>
|
|
public required string Type { get; init; }
|
|
|
|
/// <summary>Name of person or company</summary>
|
|
public required string Name { get; init; }
|
|
|
|
/// <summary>Street name (structured address only)</summary>
|
|
public string? Street { get; init; }
|
|
|
|
/// <summary>House number (structured address only)</summary>
|
|
public string? HouseNo { get; init; }
|
|
|
|
/// <summary>
|
|
/// Address line 1 (combined address only).
|
|
/// OBSOLETE: Use structured address instead. Will be removed when Codecrete v4 is adopted.
|
|
/// </summary>
|
|
[Obsolete("Use structured address (Street + HouseNo) instead. This field will be removed when upgrading to Codecrete.SwissQRBill.Generator v4.x")]
|
|
public string? AddressLine1 { get; init; }
|
|
|
|
/// <summary>
|
|
/// Address line 2 (combined address only).
|
|
/// OBSOLETE: Use structured address instead. Will be removed when Codecrete v4 is adopted.
|
|
/// </summary>
|
|
[Obsolete("Use structured address (Street + HouseNo) instead. This field will be removed when upgrading to Codecrete.SwissQRBill.Generator v4.x")]
|
|
public string? AddressLine2 { get; init; }
|
|
|
|
/// <summary>Postal code</summary>
|
|
public required string PostalCode { get; init; }
|
|
|
|
/// <summary>Town/city name</summary>
|
|
public required string Town { get; init; }
|
|
|
|
/// <summary>Two-letter country code (ISO 3166-1 alpha-2)</summary>
|
|
public required string CountryCode { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Alternative payment scheme (mapped from Codecrete AlternativeScheme)
|
|
/// </summary>
|
|
public record AlternativeSchemeDto
|
|
{
|
|
/// <summary>Scheme name (e.g., "AV1", "AV2")</summary>
|
|
public required string Name { get; init; }
|
|
|
|
/// <summary>Scheme instruction/parameter</summary>
|
|
public required string Instruction { get; init; }
|
|
}
|