This commit implements a complete rebranding of the project: - Updated all namespaces from `DocumentOperator` to `DocumentService`. - Renamed file paths, embedded resources, and test data references. - Updated configuration keys, logging paths, and Redis instance names. - Revised documentation to reflect the new project name. - Modified project and solution files to align with the new structure. - Updated class names, DTOs, commands, queries, and handlers. - Adjusted middleware, controllers, and API endpoints. - Updated Swagger metadata and API titles to `DocumentService API`. - Refactored test namespaces, resource paths, and embedded resources. - Updated build and deployment configurations for the new name. - Replaced all references to `DocumentOperator` in comments and literals. These changes ensure consistency across the codebase and documentation.
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; }
|
|
}
|