- NumberWords helper: decimal → "about seventeen pounds", DateTime → "3 days ago"
- PhotoAnalysisView: after analysis shows a card preview with large verbal price,
photo dots, "Looks good ✓" to save instantly, "Change something ▼" to reveal
a price slider (snaps to 50p, updates verbally as you drag) and title bar
- Card preview updates when live eBay price lookup completes
- SavedListingsView cards: verbal price as primary, £x.xx small beneath,
relative date ("yesterday", "3 days ago") instead of raw timestamp
- Detail panel also shows relative date
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
1.1 KiB
C#
29 lines
1.1 KiB
C#
using EbayListingTool.Helpers;
|
|
|
|
namespace EbayListingTool.Models;
|
|
|
|
public class SavedListing
|
|
{
|
|
public string Id { get; set; } = Guid.NewGuid().ToString();
|
|
public DateTime SavedAt { get; set; } = DateTime.UtcNow; // Q4: store UTC, display local
|
|
public string Title { get; set; } = "";
|
|
public string Description { get; set; } = "";
|
|
public decimal Price { get; set; }
|
|
public string Category { get; set; } = "";
|
|
public string ConditionNotes { get; set; } = "";
|
|
public string ExportFolder { get; set; } = "";
|
|
|
|
/// <summary>Absolute paths to photos inside ExportFolder.</summary>
|
|
public List<string> PhotoPaths { get; set; } = new();
|
|
|
|
public string FirstPhotoPath => PhotoPaths.Count > 0 ? PhotoPaths[0] : "";
|
|
|
|
public string PriceDisplay => Price > 0 ? $"£{Price:F2}" : "—";
|
|
|
|
public string PriceWords => NumberWords.ToVerbalPrice(Price);
|
|
|
|
public string SavedAtDisplay => SavedAt.ToLocalTime().ToString("d MMM yyyy, HH:mm");
|
|
|
|
public string SavedAtRelative => NumberWords.ToRelativeDate(SavedAt);
|
|
}
|