Adds visitor dashboard and related features
This commit is contained in:
1 parent
a7cccbf170
commit
77d1c04d86
35 files changed
+1938
-8
No files matched your search
+25
-1
@@ -1,7 +1,7 @@
|
||||
from datetime import date as _date
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, computed_field, field_validator
|
||||
from pydantic import BaseModel, computed_field
|
||||
|
||||
|
||||
# ── Shared ───────────────────────────────────────────────
|
||||
@@ -284,3 +284,27 @@ class ShowUpdate(BaseModel):
|
||||
display_order: Optional[int] = None
|
||||
active: Optional[bool] = None
|
||||
schedules: Optional[list[ShowScheduleCreate]] = None
|
||||
|
||||
|
||||
# ── Stats ────────────────────────────────────────────────────────
|
||||
|
||||
class StatsSummaryResponse(BaseModel):
|
||||
total_unique_visitors: int
|
||||
|
||||
|
||||
class TimeSeriesPoint(BaseModel):
|
||||
date: str
|
||||
unique_visitors: int
|
||||
|
||||
|
||||
class GeoStatResponse(BaseModel):
|
||||
country: str
|
||||
country_code: str
|
||||
latitude: Optional[float] = None
|
||||
longitude: Optional[float] = None
|
||||
visitors: int
|
||||
|
||||
|
||||
class ParseResultResponse(BaseModel):
|
||||
files_processed: int
|
||||
rows_inserted: int
|
||||
Reference in new issue
Block a user