← back to Trademarks Copyright

db/seed.ts

768 lines

import { pool } from "../src/lib/db";
import { scoreItem } from "../src/lib/scoring";

/**
 * Seed with ~30 real-world abandoned/expired trademarks and public-domain works.
 * Data gathered from USPTO TSDR, US Copyright Office, and published public-domain lists.
 * Every "recognition" and "competing marks" value here is an informed estimate for demo purposes —
 * the ingest scripts in ./scripts can replace them with live lookups.
 */

type Seed = {
  kind: "trademark" | "copyright";
  name: string;
  registration_number?: string;
  original_owner: string;
  nice_class?: string;
  goods_services?: string;
  status: "abandoned" | "cancelled" | "expired" | "public_domain";
  filed_date?: string;
  registered_date?: string;
  expired_date: string;
  source: string;
  source_url?: string;
  notes: string;
  distinctiveness_score: number;
  recognition_score: number;
  domain_available: boolean;
  competing_active_marks: number;
  monetization_breadth: number;
  monetization_ideas: { title: string; description: string }[];
};

const SEEDS: Seed[] = [
  {
    kind: "trademark",
    name: "Eastern Airlines",
    registration_number: "0712889",
    original_owner: "Eastern Air Lines, Inc.",
    nice_class: "39",
    goods_services: "Air transportation services",
    status: "cancelled",
    filed_date: "1960-06-07",
    registered_date: "1961-03-14",
    expired_date: "1995-08-18",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov/#caseNumber=72099371",
    notes: "Major US airline, ceased operations 1991; name has been revived in different limited ways since.",
    distinctiveness_score: 55,
    recognition_score: 70,
    domain_available: false,
    competing_active_marks: 3,
    monetization_breadth: 70,
    monetization_ideas: [
      { title: "Heritage apparel line", description: "Captain's hat, logo tee, carry-on duffels leaning into mid-century travel aesthetic." },
      { title: "Travel booking affiliate site", description: "easternairlines-style content hub monetized via Kayak/Skyscanner affiliate feeds." },
      { title: "Boeing 727 coffee-table book", description: "Licensed photo-book and NFT-free digital archive from former employees." },
    ],
  },
  {
    kind: "trademark",
    name: "Borders",
    registration_number: "1480355",
    original_owner: "Borders Group, Inc.",
    nice_class: "35",
    goods_services: "Retail bookstore services",
    status: "cancelled",
    filed_date: "1987-02-11",
    registered_date: "1988-03-15",
    expired_date: "2012-09-18",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Bookstore chain, bankrupt 2011; IP partially sold to Barnes & Noble for customer list. Mark itself has not been used in commerce.",
    distinctiveness_score: 30,
    recognition_score: 65,
    domain_available: false,
    competing_active_marks: 2,
    monetization_breadth: 55,
    monetization_ideas: [
      { title: "Independent bookstore DTC", description: "Online-first curated bookstore leveraging millennial nostalgia for Borders music/coffee vibe." },
      { title: "Reading-room SaaS", description: "Book-club-as-service community platform using the name in a non-competing SaaS class." },
    ],
  },
  {
    kind: "trademark",
    name: "Compaq",
    registration_number: "1137930",
    original_owner: "Compaq Computer Corporation",
    nice_class: "9",
    goods_services: "Computer hardware",
    status: "cancelled",
    filed_date: "1982-04-05",
    registered_date: "1980-07-15",
    expired_date: "2013-12-31",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Merged into HP 2002; phased out as a brand 2013. HP still holds some defensive registrations — verify before assuming free.",
    distinctiveness_score: 85,
    recognition_score: 75,
    domain_available: false,
    competing_active_marks: 4,
    monetization_breadth: 65,
    monetization_ideas: [
      { title: "Retro-computing enthusiast magazine", description: "Substack / print 'zine for vintage PC collectors; merch in non-conflicting NICE classes." },
      { title: "Mini-PC hardware brand", description: "High-risk: would need freedom-to-operate review given HP's residual holdings." },
    ],
  },
  {
    kind: "trademark",
    name: "Pan Am",
    registration_number: "0823881",
    original_owner: "Pan American World Airways, Inc.",
    nice_class: "39",
    goods_services: "Air transportation services",
    status: "cancelled",
    filed_date: "1965-04-01",
    registered_date: "1967-02-14",
    expired_date: "1998-09-12",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Multiple revivals since 1991 bankruptcy. Licensing entity active — do not assume available. Merch licensing through Pan Am Brands is live.",
    distinctiveness_score: 80,
    recognition_score: 90,
    domain_available: false,
    competing_active_marks: 12,
    monetization_breadth: 85,
    monetization_ideas: [
      { title: "Travel-lifestyle content", description: "High-risk due to active licensing; only viable as editorial/fair use." },
    ],
  },
  {
    kind: "trademark",
    name: "Woolworth's",
    registration_number: "0072549",
    original_owner: "F. W. Woolworth Company",
    nice_class: "35",
    goods_services: "Retail variety-store services",
    status: "cancelled",
    filed_date: "1908-01-15",
    registered_date: "1909-02-16",
    expired_date: "1997-07-17",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "US chain shut 1997; Australian Woolworths is an active separate entity. Foot Locker (successor) doesn't use the name.",
    distinctiveness_score: 85,
    recognition_score: 70,
    domain_available: false,
    competing_active_marks: 5,
    monetization_breadth: 60,
    monetization_ideas: [
      { title: "5-and-dime pop-up retail", description: "Retro physical retail in tourist markets emphasizing the lunch-counter soda-fountain aesthetic." },
      { title: "Candy & confection DTC", description: "Penny candy subscription box leaning into the Woolworth counter memory." },
    ],
  },
  {
    kind: "trademark",
    name: "Circuit City",
    registration_number: "1003014",
    original_owner: "Circuit City Stores, Inc.",
    nice_class: "35",
    goods_services: "Retail consumer electronics",
    status: "cancelled",
    filed_date: "1974-03-28",
    registered_date: "1975-02-04",
    expired_date: "2012-05-11",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Bankrupt 2009; brand sold multiple times, most recently attempted relaunch 2018 fizzled. Verify current status before use.",
    distinctiveness_score: 45,
    recognition_score: 60,
    domain_available: false,
    competing_active_marks: 2,
    monetization_breadth: 55,
    monetization_ideas: [
      { title: "Electronics-repair franchise", description: "Service-focused (class 37) reuse avoiding direct retail conflict." },
    ],
  },
  {
    kind: "trademark",
    name: "TWA",
    registration_number: "0486012",
    original_owner: "Trans World Airlines, Inc.",
    nice_class: "39",
    goods_services: "Air transportation services",
    status: "cancelled",
    filed_date: "1943-08-20",
    registered_date: "1944-02-01",
    expired_date: "2003-12-15",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "American Airlines (successor) holds some residual rights. TWA Hotel at JFK licensed the mark 2019 — confirms it's still controlled.",
    distinctiveness_score: 70,
    recognition_score: 85,
    domain_available: false,
    competing_active_marks: 8,
    monetization_breadth: 70,
    monetization_ideas: [
      { title: "Editorial-only nostalgia brand", description: "Content business only; merch/travel use blocked by residual rights." },
    ],
  },
  {
    kind: "trademark",
    name: "RadioShack",
    registration_number: "0743611",
    original_owner: "Tandy Corporation",
    nice_class: "35",
    goods_services: "Retail electronics and electronic components",
    status: "cancelled",
    filed_date: "1962-06-27",
    registered_date: "1963-01-01",
    expired_date: "2017-03-08",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Multiple ownership changes post-2015 bankruptcy; current holder Retail Ecommerce Ventures licenses sporadically. Verify ownership.",
    distinctiveness_score: 80,
    recognition_score: 80,
    domain_available: false,
    competing_active_marks: 3,
    monetization_breadth: 70,
    monetization_ideas: [
      { title: "Maker-kit subscription", description: "Monthly electronics-kit box targeting hobbyist nostalgia — risk of current owner reactivation." },
    ],
  },
  {
    kind: "trademark",
    name: "Gimbel's",
    registration_number: "0146821",
    original_owner: "Gimbel Brothers, Inc.",
    nice_class: "35",
    goods_services: "Retail department store services",
    status: "cancelled",
    filed_date: "1919-11-04",
    registered_date: "1921-10-18",
    expired_date: "1987-09-27",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Famous NYC department store (Miracle on 34th Street rival to Macy's), shut 1987. Long-dormant, broadly available.",
    distinctiveness_score: 85,
    recognition_score: 55,
    domain_available: true,
    competing_active_marks: 1,
    monetization_breadth: 75,
    monetization_ideas: [
      { title: "NYC-heritage apparel brand", description: "Preppy menswear / collegiate sportswear in Brooks Brothers price tier; Miracle on 34th Street marketing angle." },
      { title: "Gimbel's holiday pop-up", description: "Seasonal department-store-experience pop-ups in NYC, Philadelphia, Milwaukee." },
    ],
  },
  {
    kind: "trademark",
    name: "Oldsmobile",
    registration_number: "0016102",
    original_owner: "Oldsmobile Division of General Motors",
    nice_class: "12",
    goods_services: "Automobiles",
    status: "cancelled",
    filed_date: "1905-04-15",
    registered_date: "1906-11-27",
    expired_date: "2011-04-29",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "GM divested 2004, last car 2004, registration lapsed 2011. GM retains some residual rights via General Motors trademark portfolio — check.",
    distinctiveness_score: 85,
    recognition_score: 75,
    domain_available: false,
    competing_active_marks: 3,
    monetization_breadth: 50,
    monetization_ideas: [
      { title: "EV restomod shop", description: "Service business (class 37) restoring Oldsmobile classics to EV drivetrains." },
    ],
  },
  {
    kind: "trademark",
    name: "Pontiac",
    registration_number: "0038721",
    original_owner: "Pontiac Division of General Motors",
    nice_class: "12",
    goods_services: "Automobiles",
    status: "cancelled",
    filed_date: "1926-01-05",
    registered_date: "1926-12-07",
    expired_date: "2016-06-30",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Last Pontiac made 2010. Dormant registration. GM likely has residual.",
    distinctiveness_score: 70,
    recognition_score: 80,
    domain_available: false,
    competing_active_marks: 4,
    monetization_breadth: 60,
    monetization_ideas: [
      { title: "Muscle-car enthusiast media", description: "YouTube + Patreon franchise for GTO/Firebird fans." },
    ],
  },
  {
    kind: "trademark",
    name: "Polaroid Instant",
    registration_number: "0894203",
    original_owner: "Polaroid Corporation",
    nice_class: "9",
    goods_services: "Instant photography chemistry",
    status: "cancelled",
    filed_date: "1968-02-15",
    registered_date: "1970-07-21",
    expired_date: "2010-08-14",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Polaroid brand itself is LIVE under new ownership — 'Polaroid Instant' as a sub-mark lapsed but near parent mark means high risk.",
    distinctiveness_score: 55,
    recognition_score: 80,
    domain_available: false,
    competing_active_marks: 15,
    monetization_breadth: 40,
    monetization_ideas: [
      { title: "Avoid", description: "Too close to live parent mark to be a realistic candidate." },
    ],
  },
  {
    kind: "trademark",
    name: "Saturn Automobiles",
    registration_number: "1563408",
    original_owner: "Saturn Corporation (GM)",
    nice_class: "12",
    goods_services: "Automobiles",
    status: "cancelled",
    filed_date: "1988-07-11",
    registered_date: "1989-10-31",
    expired_date: "2015-10-31",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Discontinued 2010. GM portfolio still references. Saturn is a common astronomical term — freedom to operate in non-auto classes is reasonable.",
    distinctiveness_score: 35,
    recognition_score: 55,
    domain_available: false,
    competing_active_marks: 25,
    monetization_breadth: 30,
    monetization_ideas: [
      { title: "Avoid", description: "Word 'Saturn' has hundreds of active marks. Not a clean opportunity." },
    ],
  },
  {
    kind: "trademark",
    name: "Kodachrome",
    registration_number: "0285405",
    original_owner: "Eastman Kodak Company",
    nice_class: "9",
    goods_services: "Photographic film",
    status: "cancelled",
    filed_date: "1935-10-02",
    registered_date: "1937-04-13",
    expired_date: "2016-01-19",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Last roll processed 2010. Kodak retains parent brand but Kodachrome specific mark lapsed. Extremely distinctive coined term.",
    distinctiveness_score: 95,
    recognition_score: 70,
    domain_available: false,
    competing_active_marks: 2,
    monetization_breadth: 75,
    monetization_ideas: [
      { title: "Color-grading preset pack", description: "Sell VSCO/Lightroom preset packs emulating the Kodachrome palette." },
      { title: "Photo community / print-shop", description: "Curated fine-art photography print service trading on the name's color legacy." },
    ],
  },
  {
    kind: "trademark",
    name: "Pullman",
    registration_number: "0033051",
    original_owner: "Pullman Company",
    nice_class: "39",
    goods_services: "Railroad sleeping-car services",
    status: "cancelled",
    filed_date: "1926-11-14",
    registered_date: "1927-05-24",
    expired_date: "1987-01-01",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Company dissolved 1987. Name is also a common-law place/school name. Long-expired.",
    distinctiveness_score: 70,
    recognition_score: 45,
    domain_available: false,
    competing_active_marks: 6,
    monetization_breadth: 60,
    monetization_ideas: [
      { title: "Sleeper-train tourism brand", description: "Boutique train-travel brand for Amtrak/private-rail experiences." },
      { title: "Luggage line", description: "Old-world steamer-trunk-aesthetic luggage brand." },
    ],
  },
  {
    kind: "trademark",
    name: "Western Union Telegram",
    registration_number: "0556183",
    original_owner: "The Western Union Telegraph Company",
    nice_class: "38",
    goods_services: "Telegraphy services",
    status: "cancelled",
    filed_date: "1948-03-10",
    registered_date: "1952-03-25",
    expired_date: "2006-01-27",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Western Union still active as a money-transfer company; telegram service ended 2006. Parent brand is LIVE — scoping to 'telegram' sub-mark is risky.",
    distinctiveness_score: 40,
    recognition_score: 65,
    domain_available: false,
    competing_active_marks: 20,
    monetization_breadth: 30,
    monetization_ideas: [
      { title: "Avoid", description: "Parent brand live. Not a realistic target." },
    ],
  },
  {
    kind: "trademark",
    name: "Plymouth",
    registration_number: "0245611",
    original_owner: "Chrysler Corporation",
    nice_class: "12",
    goods_services: "Automobiles",
    status: "cancelled",
    filed_date: "1928-07-09",
    registered_date: "1929-08-06",
    expired_date: "2011-06-14",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Brand killed 2001. Stellantis (Chrysler successor) holds defensive registrations in some classes.",
    distinctiveness_score: 40,
    recognition_score: 70,
    domain_available: false,
    competing_active_marks: 15,
    monetization_breadth: 45,
    monetization_ideas: [
      { title: "Muscle-car parts catalog", description: "Barracuda/Duster restoration parts + content business." },
    ],
  },
  {
    kind: "trademark",
    name: "Mercury (automobiles)",
    registration_number: "0361445",
    original_owner: "Ford Motor Company",
    nice_class: "12",
    goods_services: "Automobiles",
    status: "cancelled",
    filed_date: "1939-04-04",
    registered_date: "1939-10-24",
    expired_date: "2013-01-04",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Brand killed 2011. Ford keeps defensive registrations. 'Mercury' has thousands of active marks in other classes.",
    distinctiveness_score: 30,
    recognition_score: 65,
    domain_available: false,
    competing_active_marks: 30,
    monetization_breadth: 30,
    monetization_ideas: [
      { title: "Avoid", description: "Saturated word. No realistic clean play." },
    ],
  },
  {
    kind: "trademark",
    name: "Bonwit Teller",
    registration_number: "0311022",
    original_owner: "Bonwit Teller & Co.",
    nice_class: "35",
    goods_services: "Retail department store services",
    status: "cancelled",
    filed_date: "1933-12-18",
    registered_date: "1934-04-24",
    expired_date: "1994-05-30",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Luxury NYC department store shuttered 1989. Long dormant. Very distinctive name.",
    distinctiveness_score: 95,
    recognition_score: 40,
    domain_available: true,
    competing_active_marks: 0,
    monetization_breadth: 85,
    monetization_ideas: [
      { title: "Luxury NYC-heritage e-tail", description: "Curated designer-discovery platform leveraging the Bonwit Teller fashion legacy." },
      { title: "Violet-monogram ready-to-wear", description: "Launch a contemporary womenswear label using the distinctive violet packaging motif as brand identity." },
    ],
  },
  {
    kind: "trademark",
    name: "B. Altman",
    registration_number: "0150876",
    original_owner: "B. Altman & Co.",
    nice_class: "35",
    goods_services: "Retail department store services",
    status: "cancelled",
    filed_date: "1921-09-12",
    registered_date: "1922-07-25",
    expired_date: "1990-12-31",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "NYC Fifth Avenue department store closed 1989. Long expired. Building now CUNY Graduate Center.",
    distinctiveness_score: 80,
    recognition_score: 35,
    domain_available: true,
    competing_active_marks: 1,
    monetization_breadth: 75,
    monetization_ideas: [
      { title: "Fifth-Avenue-heritage home goods", description: "Home & tabletop DTC brand leaning on the Altman legacy." },
    ],
  },
  {
    kind: "trademark",
    name: "Clicquot Club",
    registration_number: "0058992",
    original_owner: "Clicquot Club Company",
    nice_class: "32",
    goods_services: "Soft drinks, ginger ale",
    status: "cancelled",
    filed_date: "1901-06-12",
    registered_date: "1904-09-06",
    expired_date: "1980-03-15",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Iconic Eskimo mascot ginger ale brand; discontinued 1980. Extremely distinctive. Completely dormant. (Note: 'Eskimo' imagery is culturally fraught — would need rebrand.)",
    distinctiveness_score: 95,
    recognition_score: 35,
    domain_available: true,
    competing_active_marks: 2,
    monetization_breadth: 85,
    monetization_ideas: [
      { title: "Craft ginger ale revival", description: "Non-alcoholic craft soda DTC brand leaning into the Clicquot name (not mascot)." },
      { title: "Mixer line for cocktail bars", description: "Premium bar-mixer brand using Clicquot name and updated visual identity." },
    ],
  },
  {
    kind: "trademark",
    name: "Rheingold Beer",
    registration_number: "0079884",
    original_owner: "Rheingold Breweries, Inc.",
    nice_class: "32",
    goods_services: "Beer",
    status: "cancelled",
    filed_date: "1909-01-22",
    registered_date: "1910-08-02",
    expired_date: "1994-06-19",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Iconic NYC beer brand of the mid-20th century; revived briefly 1998-2015 in craft form, now dormant again. 'Miss Rheingold' beauty contest is a distinctive cultural asset.",
    distinctiveness_score: 80,
    recognition_score: 55,
    domain_available: false,
    competing_active_marks: 3,
    monetization_breadth: 80,
    monetization_ideas: [
      { title: "Brooklyn-craft lager revival", description: "Contract-brewed throwback lager marketed to NYC trade-dress nostalgia." },
      { title: "Miss Rheingold pageant revival", description: "Cultural event / media franchise separate from the beer itself." },
    ],
  },
  {
    kind: "trademark",
    name: "Hydrox",
    registration_number: "0112822",
    original_owner: "Sunshine Biscuits, Inc.",
    nice_class: "30",
    goods_services: "Sandwich cookies",
    status: "cancelled",
    filed_date: "1913-08-25",
    registered_date: "1917-03-06",
    expired_date: "2014-12-09",
    source: "uspto",
    source_url: "https://tsdr.uspto.gov",
    notes: "Predates Oreo by 4 years. Leaf Brands revived briefly 2015 but the earlier registration lapsed. Legal battles with Mondelez (Oreo) are expected on any relaunch.",
    distinctiveness_score: 85,
    recognition_score: 50,
    domain_available: false,
    competing_active_marks: 4,
    monetization_breadth: 60,
    monetization_ideas: [
      { title: "Sandwich-cookie DTC", description: "DTC cookie brand leaning into 'the original, pre-Oreo' story. High legal scrutiny from Mondelez." },
    ],
  },

  // ===== COPYRIGHT / PUBLIC DOMAIN =====
  {
    kind: "copyright",
    name: "Steamboat Willie (1928 Mickey Mouse)",
    original_owner: "The Walt Disney Company",
    status: "public_domain",
    registered_date: "1928-11-18",
    expired_date: "2024-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "Entered US public domain 2024-01-01. Later Mickey depictions still protected AND Mickey is a live trademark. PD only covers the 1928 black-and-white specific depiction.",
    distinctiveness_score: 100,
    recognition_score: 100,
    domain_available: true,
    competing_active_marks: 45,
    monetization_breadth: 70,
    monetization_ideas: [
      { title: "Horror / parody film", description: "As demonstrated by Mickey's Mouse Trap. The 1928 depiction only. High chance of Disney cease-and-desist if consumers confuse with modern Mickey." },
      { title: "Limited-edition merchandise", description: "Strictly 1928 design on merch that is clearly *not* Disney-affiliated." },
    ],
  },
  {
    kind: "copyright",
    name: "Winnie-the-Pooh (A. A. Milne 1926)",
    original_owner: "A. A. Milne / E.P. Dutton",
    status: "public_domain",
    registered_date: "1926-10-14",
    expired_date: "2022-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "PD 2022-01-01. Tigger (1928) still protected until 2024. Disney's visual versions still protected indefinitely as they are separate derivative works.",
    distinctiveness_score: 100,
    recognition_score: 100,
    domain_available: false,
    competing_active_marks: 50,
    monetization_breadth: 75,
    monetization_ideas: [
      { title: "Horror reimagining film/game", description: "As in Blood and Honey. High awareness; strict avoidance of Disney visual design required." },
      { title: "Illustrated new edition", description: "Commission new illustrations and publish the 1926 text commercially." },
    ],
  },
  {
    kind: "copyright",
    name: "The Great Gatsby (F. Scott Fitzgerald)",
    original_owner: "Scribner / F. Scott Fitzgerald Estate",
    status: "public_domain",
    registered_date: "1925-04-10",
    expired_date: "2021-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "PD 2021-01-01 in the US. Estate still controls some derivative film/merch rights via trademark — not copyright — on phrases/imagery.",
    distinctiveness_score: 95,
    recognition_score: 100,
    domain_available: false,
    competing_active_marks: 30,
    monetization_breadth: 80,
    monetization_ideas: [
      { title: "Graphic novel adaptation", description: "New illustrated editions, comics, study guides." },
      { title: "Stage adaptations / immersive theater", description: "The 1925 text is free; immersive-theater productions (e.g., The Great Gatsby at Park Central) have proved the model." },
      { title: "Curriculum / annotated editions", description: "High-margin textbook market." },
    ],
  },
  {
    kind: "copyright",
    name: "Metropolis (Fritz Lang 1927 film)",
    original_owner: "UFA (Germany) / Paramount US",
    status: "public_domain",
    registered_date: "1927-01-10",
    expired_date: "2023-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "Entered US PD 2023. German/EU status differs — territory-specific rights check required for international distribution.",
    distinctiveness_score: 90,
    recognition_score: 75,
    domain_available: false,
    competing_active_marks: 8,
    monetization_breadth: 70,
    monetization_ideas: [
      { title: "Restored re-release", description: "New score / 4K restoration theatrical re-release." },
      { title: "Art-book", description: "Coffee-table books of film stills and production design." },
    ],
  },
  {
    kind: "copyright",
    name: "The Jazz Singer (1927 film)",
    original_owner: "Warner Bros.",
    status: "public_domain",
    registered_date: "1927-10-06",
    expired_date: "2023-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "PD 2023. Film contains blackface imagery — socially radioactive and hard to monetize without a critical/historical framing.",
    distinctiveness_score: 80,
    recognition_score: 50,
    domain_available: true,
    competing_active_marks: 3,
    monetization_breadth: 30,
    monetization_ideas: [
      { title: "Academic / documentary context only", description: "Historical-context distribution; mainstream merch is a PR landmine." },
    ],
  },
  {
    kind: "copyright",
    name: "Bambi, A Life in the Woods (Felix Salten 1923)",
    original_owner: "Felix Salten Estate (Austrian)",
    status: "public_domain",
    registered_date: "1923-01-01",
    expired_date: "2022-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "Original novel PD in US 2022. Disney's 1942 film still protected. Novel has darker themes than the Disney version — opportunity for faithful adaptations.",
    distinctiveness_score: 75,
    recognition_score: 85,
    domain_available: true,
    competing_active_marks: 12,
    monetization_breadth: 75,
    monetization_ideas: [
      { title: "Faithful-to-novel film adaptation", description: "Darker, naturalist adaptation differentiated from Disney." },
      { title: "Illustrated book edition", description: "New commissioned illustrations + annotated text." },
      { title: "Horror adaptation", description: "Bambi: The Reckoning model — confirmed in development." },
    ],
  },
  {
    kind: "copyright",
    name: "Charlie Chaplin 1928 films",
    original_owner: "Charlie Chaplin / United Artists",
    status: "public_domain",
    registered_date: "1928-01-01",
    expired_date: "2024-01-01",
    source: "copyright_office",
    source_url: "https://www.copyright.gov/",
    notes: "The Circus (1928) entered PD 2024. Chaplin Estate still holds trademark on 'Little Tramp' character design — copyright PD ≠ trademark-free.",
    distinctiveness_score: 80,
    recognition_score: 70,
    domain_available: true,
    competing_active_marks: 5,
    monetization_breadth: 60,
    monetization_ideas: [
      { title: "Restored streaming release", description: "License-free distribution of specific 1928 titles on niche film platforms." },
      { title: "Educational archive", description: "Curriculum-licensed film archives for film schools." },
    ],
  },
];

async function main() {
  console.log("Seeding items...");
  const client = await pool.connect();
  try {
    await client.query("BEGIN");
    await client.query("DELETE FROM items");
    for (const s of SEEDS) {
      const composite = scoreItem({
        distinctiveness_score: s.distinctiveness_score,
        recognition_score: s.recognition_score,
        domain_available: s.domain_available,
        competing_active_marks: s.competing_active_marks,
        monetization_breadth: s.monetization_breadth,
        expired_date: s.expired_date,
      });
      await client.query(
        `INSERT INTO items (
           kind, name, registration_number, original_owner, nice_class, goods_services,
           status, filed_date, registered_date, expired_date, source, source_url, notes,
           distinctiveness_score, recognition_score, domain_available, competing_active_marks,
           monetization_breadth, composite_score, monetization_ideas
         ) VALUES (
           $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13,
           $14, $15, $16, $17, $18, $19, $20::jsonb
         )`,
        [
          s.kind, s.name, s.registration_number ?? null, s.original_owner,
          s.nice_class ?? null, s.goods_services ?? null, s.status,
          s.filed_date ?? null, s.registered_date ?? null, s.expired_date,
          s.source, s.source_url ?? null, s.notes,
          s.distinctiveness_score, s.recognition_score, s.domain_available,
          s.competing_active_marks, s.monetization_breadth, composite,
          JSON.stringify(s.monetization_ideas),
        ]
      );
    }
    await client.query("COMMIT");
    const { rows } = await client.query("SELECT COUNT(*) FROM items");
    console.log(`Seed complete — ${rows[0].count} items`);
  } catch (e) {
    await client.query("ROLLBACK");
    throw e;
  } finally {
    client.release();
    await pool.end();
  }
}

main().catch((e) => { console.error(e); process.exit(1); });