| export type User = { | |
| id: string; | |
| name: string | null; | |
| email: string; | |
| image: string | null; | |
| subscription: string; | |
| credits: number; | |
| maxDeals: number; | |
| }; | |
| export type Deal = { | |
| id: string; | |
| userId: string; | |
| title: string; | |
| sourceUrl: string; | |
| marketplace: string; | |
| buyPrice: number; | |
| estimatedSell: number; | |
| profitMargin: number; | |
| confidence: number; | |
| status: DealStatus; | |
| scrapedAt: string; | |
| analyzedAt: string | null; | |
| negotiatedAt: string | null; | |
| transactedAt: string | null; | |
| sellerContact: string | null; | |
| notes: string | null; | |
| }; | |
| export type DealStatus = | |
| | "pending" | |
| | "analyzing" | |
| | "negotiating" | |
| | "approved" | |
| | "rejected" | |
| | "transacting" | |
| | "completed" | |
| | "failed"; | |
| export type ScanLog = { | |
| id: string; | |
| userId: string | null; | |
| marketplace: string; | |
| itemsScanned: number; | |
| dealsFound: number; | |
| duration: number; | |
| status: string; | |
| error: string | null; | |
| createdAt: string; | |
| }; | |
| export type Negotiation = { | |
| id: string; | |
| dealId: string; | |
| userId: string; | |
| message: string; | |
| response: string | null; | |
| offeredPrice: number | null; | |
| acceptedPrice: number | null; | |
| status: string; | |
| turn: number; | |
| createdAt: string; | |
| updatedAt: string; | |
| }; | |
| export type Transaction = { | |
| id: string; | |
| dealId: string; | |
| userId: string; | |
| amount: number; | |
| fee: number; | |
| netProfit: number; | |
| paymentMethod: string; | |
| paymentStatus: string; | |
| shippingAddress: string | null; | |
| trackingNumber: string | null; | |
| status: string; | |
| createdAt: string; | |
| completedAt: string | null; | |
| }; | |
| export type QueueItem = { | |
| id: string; | |
| userId: string; | |
| dealId: string | null; | |
| action: string; | |
| priority: number; | |
| status: QueueStatus; | |
| data: string | null; | |
| error: string | null; | |
| retries: number; | |
| maxRetries: number; | |
| scheduled: string | null; | |
| startedAt: string | null; | |
| finishedAt: string | null; | |
| createdAt: string; | |
| updatedAt: string; | |
| }; | |
| export type QueueStatus = | |
| | "queued" | |
| | "running" | |
| | "completed" | |
| | "failed" | |
| | "cancelled"; | |
| export type AgentStatus = { | |
| isRunning: boolean; | |
| currentPhase: string | null; | |
| activeDeals: number; | |
| completedDeals: number; | |
| totalProfit: number; | |
| uptime: number; | |
| queueLength: number; | |
| lastScan: string | null; | |
| nextScan: string | null; | |
| }; | |
| export type ScrapedItem = { | |
| title: string; | |
| price: number; | |
| url: string; | |
| seller: string; | |
| contact: string | null; | |
| description: string; | |
| images: string[]; | |
| location: string | null; | |
| postedAt: string | null; | |
| }; | |
| export type AnalysisResult = { | |
| dealId: string; | |
| estimatedSell: number; | |
| profitMargin: number; | |
| confidence: number; | |
| risk: "low" | "medium" | "high"; | |
| factors: string[]; | |
| recommendation: "buy" | "hold" | "skip"; | |
| }; | |
| export type Marketplace = "facebook" | "offerup" | "alibaba"; | |