Features: - Complete .NET client SDK for LittleShop API - JWT authentication with automatic token management - Catalog service for products and categories - Order service with payment creation - Retry policies using Polly for resilience - Error handling middleware - Dependency injection support - Comprehensive documentation and examples SDK Components: - Authentication service with token refresh - Strongly-typed models for all API responses - HTTP handlers for retry and error handling - Extension methods for easy DI registration - Example console application demonstrating usage Test Updates: - Fixed test compilation errors - Updated test data builders for new models - Corrected service constructor dependencies - Fixed enum value changes (PaymentStatus, OrderStatus) Documentation: - Complete project README with features and usage - Client SDK README with detailed examples - API endpoint documentation - Security considerations - Deployment guidelines Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
1.9 KiB
C#
51 lines
1.9 KiB
C#
namespace LittleShop.Client.Models;
|
|
|
|
public class Order
|
|
{
|
|
public Guid Id { get; set; }
|
|
public string IdentityReference { get; set; } = string.Empty;
|
|
public string Status { get; set; } = string.Empty;
|
|
public decimal TotalAmount { get; set; }
|
|
public string Currency { get; set; } = string.Empty;
|
|
public string ShippingName { get; set; } = string.Empty;
|
|
public string ShippingAddress { get; set; } = string.Empty;
|
|
public string ShippingCity { get; set; } = string.Empty;
|
|
public string ShippingPostCode { get; set; } = string.Empty;
|
|
public string ShippingCountry { get; set; } = string.Empty;
|
|
public string? Notes { get; set; }
|
|
public string? TrackingNumber { get; set; }
|
|
public List<OrderItem> Items { get; set; } = new();
|
|
public List<CryptoPayment> Payments { get; set; } = new();
|
|
public DateTime CreatedAt { get; set; }
|
|
public DateTime UpdatedAt { get; set; }
|
|
public DateTime? PaidAt { get; set; }
|
|
public DateTime? ShippedAt { get; set; }
|
|
}
|
|
|
|
public class OrderItem
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid ProductId { get; set; }
|
|
public string? ProductName { get; set; }
|
|
public int Quantity { get; set; }
|
|
public decimal UnitPrice { get; set; }
|
|
public decimal TotalPrice { get; set; }
|
|
}
|
|
|
|
public class CreateOrderRequest
|
|
{
|
|
public string IdentityReference { get; set; } = string.Empty;
|
|
public string ShippingName { get; set; } = string.Empty;
|
|
public string ShippingAddress { get; set; } = string.Empty;
|
|
public string ShippingCity { get; set; } = string.Empty;
|
|
public string ShippingPostCode { get; set; } = string.Empty;
|
|
public string ShippingCountry { get; set; } = "United Kingdom";
|
|
public string? Notes { get; set; }
|
|
public List<CreateOrderItem> Items { get; set; } = new();
|
|
}
|
|
|
|
public class CreateOrderItem
|
|
{
|
|
public Guid ProductId { get; set; }
|
|
public int Quantity { get; set; }
|
|
} |