101 lines
4.7 KiB
C#
101 lines
4.7 KiB
C#
using Distribution.Models;
|
|
|
|
namespace Distribution.Features.Vehicle;
|
|
|
|
// ── Repository projections ─────────────────────────────────────────────────
|
|
|
|
public record VehicleBalanceRow(
|
|
Guid ItemId, string Sku, string Name, string Category, string Uom,
|
|
decimal? SalePrice, decimal Quantity, DateTime UpdatedAt);
|
|
|
|
public record VehicleMovementRow(
|
|
Guid Id, Guid ItemId, string ItemName, string Sku,
|
|
Guid? FromLocationId, LocationType? FromLocationType,
|
|
Guid? ToLocationId, LocationType? ToLocationType,
|
|
decimal Quantity, MovementType Type, string? ReasonCode, Guid? ReferenceId,
|
|
DateTime CreatedAt, Guid CreatedBy);
|
|
|
|
public record VehicleRideRow(
|
|
Guid Id, RideStatus Status, Guid DriverProfileId, string DriverName,
|
|
int MeterStart, int MeterEnd, DateTime? StartedAt, DateTime? ClosedAt, DateTime CreatedAt,
|
|
CancelRequestType? CancelType, string? CancelReason,
|
|
int Tasks, int Delivered, int Failed);
|
|
|
|
public record VehicleTaskRow(
|
|
Guid RideId, DeliveryTaskStatus Status, Guid StoreId, string StoreName,
|
|
decimal DeliveredValue, DateTime Date);
|
|
|
|
public record VehicleCollectionRow(PaymentMethod Method, decimal Amount, int Count);
|
|
|
|
public record VehicleReturnTotals(int ReturnCount, decimal CreditValue, decimal Units);
|
|
|
|
public record VehicleDriverRow(
|
|
Guid Id, string Name, string LicenseNumber, DateTime LicenseExpiry, DateTime MedicalClearanceExpiry, bool IsActive);
|
|
|
|
public record VehicleNamedRef(Guid Id, string Name);
|
|
|
|
// ── Response ───────────────────────────────────────────────────────────────
|
|
|
|
public record VehicleDashboardPeriod(DateTime From, DateTime To);
|
|
|
|
public record VehicleDashboardKpis(
|
|
int Rides, int ClosedRides, int CancelledRides, decimal DistanceKm,
|
|
int Deliveries, int DeliveredCount, int FailedCount, int PendingCount, decimal SuccessRatePercent,
|
|
decimal DeliveredValue, decimal Collections,
|
|
decimal StockOnBoardUnits, decimal StockOnBoardValue,
|
|
decimal UnitsLoaded, decimal UnitsSold);
|
|
|
|
public record VehicleDashboardStockRow(
|
|
Guid ItemId, string Sku, string Name, string Category, string Uom,
|
|
decimal Quantity, decimal Value, DateTime UpdatedAt);
|
|
|
|
public record VehicleDashboardRide(
|
|
Guid Id, RideStatus Status, string DriverName, DateTime? StartedAt, DateTime? ClosedAt, DateTime CreatedAt,
|
|
decimal DistanceKm, int Tasks, int Delivered, int Failed, CancelRequestType? CancelType, string? CancelReason);
|
|
|
|
public record VehicleDashboardDailyDelivery(string Date, int Delivered, int Failed);
|
|
|
|
public record VehicleDashboardDailyMovement(string Date, decimal In, decimal Out);
|
|
|
|
public record VehicleDashboardMovementType(MovementType Type, string Direction, decimal Units, int Count);
|
|
|
|
public record VehicleDashboardLedgerRow(
|
|
Guid Id, DateTime CreatedAt, Guid ItemId, string ItemName, string Sku,
|
|
MovementType Type, string Direction, decimal Quantity,
|
|
string FromName, string ToName, Guid? ReferenceId, string? ReferenceKind,
|
|
string? ReasonCode, string CreatedByName);
|
|
|
|
public record VehicleDashboardCancelReason(CancelRequestType Type, int Count);
|
|
|
|
public record VehicleDashboardCollection(PaymentMethod Method, decimal Amount, int Count);
|
|
|
|
public record VehicleDashboardReturns(int ReturnCount, decimal CreditValue, decimal ReturnedUnits, decimal CustomerReturnUnitsOnVehicle);
|
|
|
|
public record VehicleDashboardTopStore(Guid StoreId, string StoreName, int Deliveries, decimal Value);
|
|
|
|
public record VehicleDashboardDriver(
|
|
Guid Id, string Name, string LicenseNumber, DateTime LicenseExpiry, DateTime MedicalClearanceExpiry,
|
|
bool IsActive, int Rides, decimal DistanceKm, DateTime? LastRideAt);
|
|
|
|
public record VehicleDashboardCurrentRide(
|
|
Guid Id, string DriverName, DateTime? StartedAt, int MeterStart, int Tasks, int Delivered, int Failed);
|
|
|
|
public record VehicleDashboardResponse(
|
|
VehicleResponse Vehicle,
|
|
VehicleNamedRef? DefaultWarehouse,
|
|
VehicleNamedRef? MobileWarehouse,
|
|
VehicleDashboardCurrentRide? CurrentRide,
|
|
VehicleDashboardPeriod Period,
|
|
VehicleDashboardKpis Kpis,
|
|
List<VehicleDashboardStockRow> StockOnBoard,
|
|
List<VehicleDashboardRide> Rides,
|
|
List<VehicleDashboardDailyDelivery> DailyDeliveries,
|
|
List<VehicleDashboardDailyMovement> DailyMovement,
|
|
List<VehicleDashboardMovementType> MovementByType,
|
|
List<VehicleDashboardLedgerRow> Ledger,
|
|
List<VehicleDashboardCancelReason> CancelReasons,
|
|
List<VehicleDashboardCollection> CollectionsByMethod,
|
|
VehicleDashboardReturns Returns,
|
|
List<VehicleDashboardTopStore> TopStores,
|
|
List<VehicleDashboardDriver> Drivers);
|