← back to Handbag Auth Nextjs

src/types/handbagRss.ts

61 lines

// TypeScript type definitions for handbag RSS feed management

export type HandbagFeedCategory =
  | "new-arrivals"
  | "resale"
  | "auction"
  | "news"
  | "other";

export interface HandbagRssSource {
  id: string;
  name: string;
  siteDomain: string; // e.g. "fashionphile.com"
  feedUrl: string;
  category: HandbagFeedCategory;
  language?: string; // e.g. "en"
  notes?: string;
  active?: boolean; // toggle on/off
}

export interface HandbagFeedItem {
  id: string;          // stable GUID or URL hash
  sourceId: string;    // HandbagRssSource.id
  title: string;
  link: string;
  publishedAt?: string;
  summary?: string;
  imageUrl?: string;

  // Optional normalized handbag metadata (Claude can try to parse):
  brand?: string;
  model?: string;
  color?: string;
  condition?: "new" | "used" | "auction" | "unknown";
  price?: number;
  currency?: string;
}

export interface AffiliateSignupProfile {
  contactName: string;
  company: string;
  email: string;
  websites: string[];
  description?: string;
}

export type MerchantType = "brand" | "retailer" | "reseller" | "auction";

export interface HandbagAffiliateProgram {
  id: string;
  name: string;
  website: string;
  domain: string;
  merchantType: MerchantType;
  affiliateNetwork?: string;
  signupUrl?: string;
  commissionStructure?: string;
  cookieDurationDays?: number;
  notes?: string;
}