feat: initial project scaffold with CI/CD and Docker deployment

Next.js 15 + Tailwind CSS v4 week calendar showing Six Flags park hours.
Scrapes the internal CloudFront API, stores results in SQLite.
Includes Dockerfile (Debian/Playwright-compatible), docker-compose, and
Gitea Actions pipeline that builds and pushes to the container registry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 00:48:09 -04:00
parent af6aa29474
commit 548c7ae09e
26 changed files with 9602 additions and 0 deletions

37
lib/scrapers/types.ts Normal file
View File

@@ -0,0 +1,37 @@
export interface Park {
id: string;
name: string;
shortName: string;
chain: "sixflags" | string;
slug: string;
location: {
lat: number;
lng: number;
city: string;
state: string;
};
timezone: string;
website: string;
}
export interface DayStatus {
day: number;
isOpen: boolean;
hoursLabel?: string;
}
export interface MonthCalendar {
parkId: string;
year: number;
month: number;
days: DayStatus[];
}
export interface ScraperAdapter {
readonly chain: string;
getMonthCalendar(
park: Park,
year: number,
month: number
): Promise<MonthCalendar>;
}