feat: sponsor seed data fixture from GroupMe contacts #323

Closed
opened 2026-04-03 23:50:43 +00:00 by forgejo_admin · 0 comments

Type

Feature

Lineage

Child of basketball-api#316 (sponsor outreach system). Independent — pure data file, no code dependencies.

Repo

forgejo_admin/basketball-api

User Story

As an admin,
I want Marcus's 50+ sponsor contacts pre-loaded as structured data,
So that the seed endpoint can bulk-import them into the database.

Context

Marcus shared his sponsor contact list in the WKQ Stakeholders GroupMe chat (2026-04-03). Two large messages with business names and emails organized by category. This ticket parses that raw data into a structured JSON fixture.

The fixture will be consumed by POST /sponsors/seed (built in a later ticket). Format must match the Sponsor model schema.

File Targets

Files the agent should create:

  • data/sponsors_seed.json — JSON array of sponsor objects

Files the agent should NOT touch:

  • Any Python code
  • Any existing data files

Acceptance Criteria

  • data/sponsors_seed.json contains all ~50 businesses from Marcus's GroupMe messages
  • Each entry has: business_name, email, category (one of: food, financial, retail, automotive, construction, fitness, dental, grocery, other)
  • Categories correctly assigned based on business type
  • No duplicate entries
  • Valid JSON (parseable by json.load())
  • Emails match exactly what Marcus provided (no guessing)

Source Data

Financial:

Food:

Retail:

  • Dick's Sporting Goods — (no email in GroupMe, omit or mark TBD)
  • Costco (West Valley) — service@costco.com
  • Ken Garff Automotive — (no email in GroupMe, omit or mark TBD)
  • Quick Quack Car Wash — (no email in GroupMe, omit or mark TBD)

Automotive:

Construction:

Fitness:

Dental:

Grocery:

  • Smith's Food & Drug — (no email in GroupMe, omit or mark TBD)
  • Harmons Grocery — (no email in GroupMe, omit or mark TBD)
  • WinCo Foods — (no email in GroupMe, omit or mark TBD)
  • Rancho Markets — (no email in GroupMe, omit or mark TBD)

Test Expectations

  • python -c "import json; json.load(open('data/sponsors_seed.json'))" succeeds
  • Count matches expected number of entries

Constraints

  • Only include businesses where we have an email address from Marcus
  • Businesses with no email should be omitted (not included with TBD)
  • Use exactly the emails Marcus provided — do not look up or guess corporate emails
  • One entry per unique email (deduplicate Raising Cane's multiple addresses into separate entries)

Checklist

  • PR opened
  • Valid JSON
  • No unrelated changes
  • basketball-api#316 — parent epic
### Type Feature ### Lineage Child of basketball-api#316 (sponsor outreach system). Independent — pure data file, no code dependencies. ### Repo `forgejo_admin/basketball-api` ### User Story As an admin, I want Marcus's 50+ sponsor contacts pre-loaded as structured data, So that the seed endpoint can bulk-import them into the database. ### Context Marcus shared his sponsor contact list in the WKQ Stakeholders GroupMe chat (2026-04-03). Two large messages with business names and emails organized by category. This ticket parses that raw data into a structured JSON fixture. The fixture will be consumed by `POST /sponsors/seed` (built in a later ticket). Format must match the Sponsor model schema. ### File Targets Files the agent should create: - `data/sponsors_seed.json` — JSON array of sponsor objects Files the agent should NOT touch: - Any Python code - Any existing data files ### Acceptance Criteria - [ ] `data/sponsors_seed.json` contains all ~50 businesses from Marcus's GroupMe messages - [ ] Each entry has: `business_name`, `email`, `category` (one of: food, financial, retail, automotive, construction, fitness, dental, grocery, other) - [ ] Categories correctly assigned based on business type - [ ] No duplicate entries - [ ] Valid JSON (parseable by `json.load()`) - [ ] Emails match exactly what Marcus provided (no guessing) ### Source Data **Financial:** - Bank of America — sponsorships@bofa.com - First Utah Bank — marketing@firstutahbank.com - US Bank (West Valley) — sponsorships@usbank.com - US Bank (Magna) — communityrelations@usbank.com - Zions Bank (Magna) — sponsorships@zionsbank.com - Zions Bank (Salt Lake) — donations@zionsbank.com - Mountain America Credit Union — (no email in GroupMe, omit or mark TBD) - America First Credit Union — (no email in GroupMe, omit or mark TBD) - Cyprus Credit Union — (no email in GroupMe, omit or mark TBD) - Goldenwest Credit Union — (no email in GroupMe, omit or mark TBD) **Food:** - Crown Burgers — crownburgers@gmail.com - Raising Cane's — community@raisingcanes.com - Raising Cane's (alt) — marketing@raisingcanes.com - Chipotle — partnerships@chipotle.com - Cafe Rio — marketing@caferio.com - Chick-fil-A — customerrelations@chick-fil-a.com - Apollo Burger — apolloburger@gmail.com - La Frontera — info@lafronterarestaurants.com - Arctic Circle — marketing@acburger.com - Buffalo Wild Wings — sponsorships@buffalowildwings.com - Domino's Pizza — media@dominos.com - Costa Vida — marketing@costavida.com - Sodalicious — info@sodalicious.com - Swig — info@swignsweets.com - Raising Cane's (West Valley) — info@raisingcanes.com - Chicken Express — customerservice@chickenexpress.com - 7-Eleven — customerservice@7-11.com - Wingstop — support@wingstop.com - Cafe Zupas — marketing@cafezupas.com - Five Guys — customerservice@fiveguys.com - Panda Express — guestrelations@pandarg.com - Starbucks — (no email in GroupMe, omit or mark TBD) - Crumbl Cookies — (no email in GroupMe, omit or mark TBD) - Dutch Bros — (no email in GroupMe, omit or mark TBD) **Retail:** - Dick's Sporting Goods — (no email in GroupMe, omit or mark TBD) - Costco (West Valley) — service@costco.com - Ken Garff Automotive — (no email in GroupMe, omit or mark TBD) - Quick Quack Car Wash — (no email in GroupMe, omit or mark TBD) **Automotive:** - Big O Tires — marketing@bigotires.com - Les Schwab — support@lesschwab.com - Discount Tire — support@discounttire.com - Burt Brothers — info@burtbrothers.com - Tire Pros — info@tirepros.com **Construction:** - Big-D Construction — info@big-d.com - Jacobsen Construction — info@jacobsenconstruction.com - Layton Construction — info@laytonconstruction.com - Oakland Construction — info@oaklandco.com **Fitness:** - VASA Fitness — partnerships@vasafitness.com - The Joint Chiropractic — marketing@thejoint.com **Dental:** - Green Dental — info@greendentalutah.com - Abundant Dental Care — info@abundantdentalcare.com - Genesis Dental — info@genesisdental.com - Professional Dental — marketing@prodentalut.com - Stonehaven Dental — info@stonehavendental.com **Grocery:** - Smith's Food & Drug — (no email in GroupMe, omit or mark TBD) - Harmons Grocery — (no email in GroupMe, omit or mark TBD) - WinCo Foods — (no email in GroupMe, omit or mark TBD) - Rancho Markets — (no email in GroupMe, omit or mark TBD) ### Test Expectations - [ ] `python -c "import json; json.load(open('data/sponsors_seed.json'))"` succeeds - [ ] Count matches expected number of entries ### Constraints - Only include businesses where we have an email address from Marcus - Businesses with no email should be omitted (not included with TBD) - Use exactly the emails Marcus provided — do not look up or guess corporate emails - One entry per unique email (deduplicate Raising Cane's multiple addresses into separate entries) ### Checklist - [ ] PR opened - [ ] Valid JSON - [ ] No unrelated changes ### Related - basketball-api#316 — parent epic
forgejo_admin 2026-04-04 02:25:00 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/basketball-api#323
No description provided.