diff --git a/TASKS.md b/TASKS.md index 55fb826..17b4e90 100644 --- a/TASKS.md +++ b/TASKS.md @@ -20,10 +20,6 @@ If you want to use emojis for visibility, here's some I have used: ### To Do -### In Progress -* `[🧑‍🔧]` **2.0: CSS Refactor & Styling:** Improve the general look and feel of the application pages. -* `[🧑‍🔧]` **2.1: Dashboard UI:** Create `dashboard.html` (only for logged-in users). - ### Done * `[✔️]` **1.0: Project Skeleton** - @ramforth * *Task:* Setup `main.py`, `requirements.txt`, and `.gitignore`. @@ -41,13 +37,18 @@ If you want to use emojis for visibility, here's some I have used: ### To Do -* `[ ]` **2.4: Create Logo and Favicon:** The project should have a logo and a favicon. Someone with designing skills could look at this -* `[ ]` **2.2: Config API:** Create API endpoints (`GET`, `POST`) for `/api/settings` to save/load user preferences (e.g., custom CSS). -* `[ ]` **2.3: Overlay URL:** Generate and display the unique overlay URL for the user (e.g., `/overlay/{user_id}`). +* `[ ]` **2.4: Create Logo and Favicon:** The project should have a logo and a favicon. + +### Done +* `[✔️]` **2.0: CSS Refactor & Styling:** Improved the general look and feel of the application pages, including a light/dark theme switcher. +* `[✔️]` **2.1: Dashboard UI:** Created `dashboard.html` for logged-in users to manage settings. +* `[✔️]` **2.2: Config API:** Created API endpoints for `/api/settings` to save user preferences. +* `[✔️]` **2.3: Overlay URL:** Generated and displayed the unique overlay URL for the user on the dashboard. +* `[✔️]` **2.5: Custom CSS Themes:** Implemented a system for users to create, preview, and delete their own private CSS overlay themes. --- -## 💬 Phase 3: Dynamic Listeners & Basic Overlay +## 💬 Phase 3: Real-time Chat & Overlay * **Goal:** The core magic. Start chat listeners for users and show messages in the overlay. * *(All tasks for this phase are on hold until Phase 2 is complete)* @@ -61,8 +62,6 @@ If you want to use emojis for visibility, here's some I have used: ## 💡 Backlog & Future Features -* *(Tasks from Phase 4, Gitea Issues, etc., will be added here as we go)* * `[ ]` Implement YouTube OAuth & `pytchat` listener (Phase 4). * `[ ]` "Single Message Focus" feature (Issue #1). -* `[ ]` Moderator panels (Issue #2). -* `[ ]` Custom CSS storage & injection (Issue #6). \ No newline at end of file +* `[ ]` Moderator panels (Issue #2). \ No newline at end of file diff --git a/schemas.py b/schemas.py index 26b05a9..943def8 100644 --- a/schemas.py +++ b/schemas.py @@ -1,5 +1,19 @@ from pydantic import BaseModel -from typing import Literal class SettingsUpdate(BaseModel): - overlay_theme: Literal['dark-purple', 'bright-green', 'minimal-light', 'hacker-green'] \ No newline at end of file + overlay_theme: str + +class CustomThemeBase(BaseModel): + name: str + css_content: str + +class CustomThemeCreate(CustomThemeBase): + pass + +class CustomTheme(CustomThemeBase): + id: int + owner_id: int + + class Config: + # This allows the Pydantic model to be created from a SQLAlchemy ORM object + orm_mode = True \ No newline at end of file