package admindashboard

import "time"

type DashboardDTO struct {
	Metrics        MetricsDTO         `json:"metrics"`
	Pending        PendingDTO         `json:"pending"`
	RecentOrders   []RecentOrderDTO   `json:"recent_orders"`
	RecentDisputes []RecentDisputeDTO `json:"recent_disputes"`
	GeneratedAt    time.Time          `json:"generated_at"`
}

type MetricsDTO struct {
	TotalUsers        int64   `json:"total_users"`
	VerifiedUsers     int64   `json:"verified_users"`
	TotalListings     int64   `json:"total_listings"`
	PublishedListings int64   `json:"published_listings"`
	TotalOrders       int64   `json:"total_orders"`
	RentingOrders     int64   `json:"renting_orders"`
	TodayOrders       int64   `json:"today_orders"`
	TodayLedgerAmount float64 `json:"today_ledger_amount"`
}

type PendingDTO struct {
	ListingReviews        int64 `json:"listing_reviews"`
	Disputes              int64 `json:"disputes"`
	PendingHandoffs       int64 `json:"pending_handoffs"`
	PendingReturnConfirms int64 `json:"pending_return_confirms"`
}

type RecentOrderDTO struct {
	ID            uint64    `json:"id"`
	OrderNo       string    `json:"order_no"`
	Title         string    `json:"title"`
	RenterID      uint64    `json:"renter_id"`
	OwnerID       uint64    `json:"owner_id"`
	Status        string    `json:"status"`
	RentAmount    float64   `json:"rent_amount"`
	DepositAmount float64   `json:"deposit_amount"`
	CreatedAt     time.Time `json:"created_at"`
}

type RecentDisputeDTO struct {
	ID          uint64    `json:"id"`
	OrderID     uint64    `json:"order_id"`
	OrderNo     string    `json:"order_no"`
	Title       string    `json:"title"`
	Type        string    `json:"type"`
	Status      string    `json:"status"`
	InitiatorID uint64    `json:"initiator_id"`
	CreatedAt   time.Time `json:"created_at"`
}
