initial commit
This commit is contained in:
0
server/app/models/__init__.py
Normal file
0
server/app/models/__init__.py
Normal file
7
server/app/models/contact.py
Normal file
7
server/app/models/contact.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from pydantic import BaseModel, EmailStr
|
||||
|
||||
|
||||
class Contact(BaseModel):
|
||||
name: str
|
||||
email: EmailStr
|
||||
message: str
|
||||
36
server/app/models/event.py
Normal file
36
server/app/models/event.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import UploadFile
|
||||
from pydantic import BaseModel, HttpUrl
|
||||
|
||||
|
||||
class Poster(BaseModel):
|
||||
file: UploadFile
|
||||
|
||||
|
||||
class NewEvent(BaseModel):
|
||||
location: str
|
||||
time: datetime
|
||||
map_url: Optional[HttpUrl] = None
|
||||
ticket_url: Optional[HttpUrl] = None
|
||||
|
||||
|
||||
class Event(NewEvent):
|
||||
event_id: int
|
||||
|
||||
|
||||
class NewEventSeries(BaseModel):
|
||||
name: str
|
||||
description: str
|
||||
events: list[NewEvent]
|
||||
|
||||
|
||||
class EventSeries(NewEventSeries):
|
||||
series_id: int
|
||||
events: list[Event]
|
||||
poster_id: Optional[str] = None
|
||||
|
||||
|
||||
SERIES_TABLE = "series"
|
||||
EVENT_TABLE = "events"
|
||||
10
server/app/models/group.py
Normal file
10
server/app/models/group.py
Normal file
@@ -0,0 +1,10 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Group(BaseModel):
|
||||
name: str
|
||||
bio: str
|
||||
id: int | None = None
|
||||
|
||||
|
||||
GROUP_TABLE = "group_table"
|
||||
16
server/app/models/musician.py
Normal file
16
server/app/models/musician.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class NewMusician(BaseModel):
|
||||
name: str
|
||||
bio: str
|
||||
headshot_id: str # cloudinary id
|
||||
|
||||
|
||||
class Musician(NewMusician):
|
||||
id: int
|
||||
|
||||
|
||||
MUSICIAN_TABLE = "musicians"
|
||||
12
server/app/models/tgd.py
Normal file
12
server/app/models/tgd.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.event import EventSeries
|
||||
from app.models.group import Group
|
||||
from app.models.musician import Musician
|
||||
|
||||
|
||||
class TheGrapefruitsDuo(BaseModel):
|
||||
version: str
|
||||
group: Group
|
||||
musicians: list[Musician]
|
||||
events: list[EventSeries]
|
||||
13
server/app/models/user.py
Normal file
13
server/app/models/user.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
name: str
|
||||
email: str
|
||||
sub: Optional[str] = None
|
||||
id: int | None = None
|
||||
|
||||
|
||||
USER_TABLE = "users"
|
||||
Reference in New Issue
Block a user