← back to Wine Finder Next
lib/types/affiliate.ts
45 lines
// Affiliate Partner Types
export type PartnerType = 'marketplace' | 'club' | 'retailer' | 'gift' | 'auction';
export interface AffiliatePartner {
id: string;
name: string;
type: PartnerType;
baseUrl: string;
affiliateParam: string;
affiliateId?: string;
deeplinkPattern?: string;
commissionRate?: string;
cookieDuration?: number; // in days
enabled: boolean;
logo?: string;
description?: string;
signupUrl?: string;
network?: 'CJ' | 'ShareASale' | 'Impact' | 'Rakuten' | 'Direct';
priority?: number; // Higher priority = shown first
}
export interface AffiliateClick {
id?: string;
timestamp: string;
wineId?: string;
wineName: string;
partnerId: string;
partnerName: string;
affiliateUrl: string;
userAgent?: string;
referrer?: string;
ipAddress?: string;
}
export interface AffiliateStats {
partnerId: string;
partnerName: string;
totalClicks: number;
clicksToday: number;
clicksThisWeek: number;
clicksThisMonth: number;
conversionRate?: number;
estimatedCommissions?: number;
}