using Distribution.Models; namespace Distribution.Features.SupplierClaims; public record SupplierClaimItemRequest(Guid ItemId, decimal Quantity, SupplierClaimIssueType IssueType); public record CreateSupplierClaimRequest( Guid? GoodsReceiptId, string Details, string? EvidenceUrl, List Items, // TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28. Guid? RaisedByUserId = null); // Only editable while the claim is still Open — Approve/Reject resolve it, and a resolved // claim's details/items shouldn't silently change after the fact. public record UpdateSupplierClaimRequest( string Details, string? EvidenceUrl, List Items); public record ApproveSupplierClaimRequest( SupplierClaimResolutionType ResolutionType, decimal? ResolutionAmount, string? ResolutionNotes, // TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28. Guid? ApprovedByUserId = null); public record RejectSupplierClaimRequest( string? ResolutionNotes, // TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28. Guid? RejectedByUserId = null); public record SupplierClaimItemResponse( Guid Id, Guid ItemId, string Sku, string ItemName, decimal Quantity, SupplierClaimIssueType IssueType); public record SupplierClaimResponse( Guid Id, Guid PurchaseOrderId, Guid? GoodsReceiptId, string Details, string? EvidenceUrl, SupplierClaimStatus Status, SupplierClaimResolutionType? ResolutionType, decimal? ResolutionAmount, string? ResolutionNotes, DateTime? ResolvedAt, bool IsActive, DateTime CreatedAt, List Items);