backend.schemas

Pydantic schemas for request validation and response serialisation.

Every schema is a pydantic.BaseModel subclass. Schemas are grouped by domain:

class backend.schemas.LoginRequest(*, username, password)[Quellcode]

Bases: BaseModel

username: str
password: str
classmethod strip_username(v)[Quellcode]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.TokenResponse(*, access_token, token_type='bearer')[Quellcode]

Bases: BaseModel

access_token: str
token_type: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.RefreshRequest(*, refresh_token)[Quellcode]

Bases: BaseModel

refresh_token: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.LogoutRequest(*, refresh_token=None)[Quellcode]

Bases: BaseModel

refresh_token: str | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.UserGroup(*values)[Quellcode]

Bases: str, Enum

admin = 'admin'
editor = 'editor'
user = 'user'
class backend.schemas.UserStatus(*values)[Quellcode]

Bases: str, Enum

active = 'active'
deactivated = 'deactivated'
class backend.schemas.UserCreate(*, user_name, clear_name=None, email, user_pw, user_group, musician=False, is_singer=False, status=UserStatus.active)[Quellcode]

Bases: BaseModel

user_name: str
clear_name: str | None
email: EmailStr
user_pw: str
user_group: UserGroup
musician: bool
is_singer: bool
status: UserStatus
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.UserOut(*, id, user_name, user_group, email, clear_name, musician, is_singer, mm_username='', status=UserStatus.active)[Quellcode]

Bases: BaseModel

id: int
user_name: str
user_group: UserGroup
email: EmailStr
clear_name: str
musician: bool
is_singer: bool
mm_username: str | None
status: UserStatus
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.UserTodo(*, id, todo, user_name, song_title, song_interpret, done, dt)[Quellcode]

Bases: BaseModel

id: int
todo: str
user_name: str
song_title: str
song_interpret: str
done: bool
dt: datetime | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongForFeedback(*, id, title, interpret, status)[Quellcode]

Bases: BaseModel

id: int
title: str
interpret: str
status: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyForFeedback(*, id, kind_of_survey, rf_survey, release_date=None)[Quellcode]

Bases: BaseModel

id: int
kind_of_survey: str
rf_survey: str
release_date: str | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.UserTodoList(*, todo=<factory>, songs_to_feedback=<factory>, surveys_to_feedback=<factory>)[Quellcode]

Bases: BaseModel

todo: List[UserTodo]
songs_to_feedback: List[SongForFeedback]
surveys_to_feedback: List[SurveyForFeedback]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.PasswordUpdateRequest(*, user_id, old_password, new_password)[Quellcode]

Bases: BaseModel

user_id: int
old_password: str
new_password: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.PasswordResetRequest(*, new_password)[Quellcode]

Bases: BaseModel

new_password: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SoftConfigOption(*, key=None, label)[Quellcode]

Bases: BaseModel

key: str | None
label: str
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SoftConfigUpdateIn(*, genres, gigTypes, songStatuses, gigStatuses, tonekeys, rehearsalSongStatuses, setlist_timing)[Quellcode]

Bases: BaseModel

genres: List[str | SoftConfigOption]
gigTypes: List[str | SoftConfigOption]
songStatuses: List[str | SoftConfigOption]
gigStatuses: List[str | SoftConfigOption]
tonekeys: List[str | SoftConfigOption]
rehearsalSongStatuses: List[str | SoftConfigOption]
setlist_timing: List[Dict[str, int]]
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SoftConfigOut(*, genres, gigTypes, songStatuses, gigStatuses, tonekeys, rehearsalSongStatuses, setlist_timing)[Quellcode]

Bases: BaseModel

genres: List[SoftConfigOption]
gigTypes: List[SoftConfigOption]
songStatuses: List[SoftConfigOption]
gigStatuses: List[SoftConfigOption]
tonekeys: List[SoftConfigOption]
rehearsalSongStatuses: List[str]
setlist_timing: List[Dict[str, int]]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SoftConfigMeta(*, editableKeys, updatedAt)[Quellcode]

Bases: BaseModel

editableKeys: List[str]
updatedAt: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SoftConfigAdminResponse(*, data, meta)[Quellcode]

Bases: BaseModel

data: SoftConfigOut
meta: SoftConfigMeta
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SoftConfigUpdateResponse(*, message, updatedKeys, data)[Quellcode]

Bases: BaseModel

message: str
updatedKeys: List[str]
data: SoftConfigOut
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongIn(*, title, interpret, genre, singer_background=None, singer_lead=None, composer=None, texter=None, publisher=None, arrangement=None, tone_key=None, status, comment=None, ytlink=None, brass=None, text=None, id=None, duration=None)[Quellcode]

Bases: BaseModel

title: str
interpret: str
genre: str
singer_background: str | None
singer_lead: str | None
composer: str | None
texter: str | None
publisher: str | None
arrangement: str | None
tone_key: str | None
status: str
comment: str | None
brass: int | str | None
text: str | None
id: int
duration: time | str | None
classmethod parse_duration(v)[Quellcode]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongFeedbackIn(*, song_id, user_id, feedback)[Quellcode]

Bases: BaseModel

song_id: int
user_id: int
feedback: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongFeedbackBase(*, song_id, user_id, feedback)[Quellcode]

Bases: BaseModel

song_id: int
user_id: int
feedback: str
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongFeedbackSummary(*, song_id, total_votes=0, yes_votes=0, no_votes=0, abstain_votes=0, unknown_votes=0)[Quellcode]

Bases: BaseModel

song_id: int
total_votes: int
yes_votes: int
no_votes: int
abstain_votes: int
unknown_votes: int
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongCandidateOut(*, id, title, interpret, genre=None, singer_lead=None, singer_background=None, composer=None, tone_key=None, status=None, ytlink=None, brass=None, duration=None, feedbacks=<factory>)[Quellcode]

Bases: BaseModel

id: int
title: str
interpret: str
genre: str | None
singer_lead: str | None
singer_background: str | None
composer: str | None
tone_key: str | None
status: str | None
brass: int | None
duration: time | None
feedbacks: list[SongFeedbackBase]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongOut(*, title=None, interpret=None, genre=None, singer_background=None, singer_lead=None, composer=None, texter=None, publisher=None, arrangement=None, tone_key=None, status=None, comment=None, ytlink=None, duration=None, brass=None, id=None)[Quellcode]

Bases: BaseModel

title: str | None
interpret: str | None
genre: str | None
singer_background: str | None
singer_lead: str | None
composer: str | None
texter: str | None
publisher: str | None
arrangement: str | None
tone_key: str | None
status: str | None
comment: str | None
duration: time | None
brass: int | None
id: int
property singer_lead_short: str
property duration_formatted: str
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongScrawlOut(*, recording_id=None, work_id=None, duration=None, ytlink=None, composers=<factory>, lyricists=<factory>, composer=None, texter=None)[Quellcode]

Bases: BaseModel

recording_id: str | None
work_id: str | None
duration: str | None
composers: List[str]
lyricists: List[str]
composer: str | None
texter: str | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigIn(*, name, datum, venue=None, kind_of_gig, doors=None, begin=None, end=None, organizer=None, status=None, id=None, publish=None)[Quellcode]

Bases: BaseModel

name: str
datum: date
venue: str | None
kind_of_gig: str
doors: time | str | None
begin: time | str | None
end: time | str | None
organizer: str | None
status: str | None
id: int
publish: int | None
classmethod parse_date(v)[Quellcode]
classmethod parse_time_field(v)[Quellcode]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.NewGig(*, name, datum, venue=None, kind_of_gig, begin, doors=None, end=None, organizer=None, status=None, publish=0)[Quellcode]

Bases: BaseModel

name: str
datum: date
venue: str | None
kind_of_gig: str
begin: time | str
doors: time | str | None
end: time | str | None
organizer: str | None
status: str | None
publish: int | None
classmethod set_default_times(values)[Quellcode]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigOut(*, name=None, datum=None, venue=None, organizer=None, kind_of_gig=None, doors=None, begin=None, end=None, status=None, id=None, publish=None)[Quellcode]

Bases: BaseModel

name: str
datum: date
venue: str | None
organizer: str | None
kind_of_gig: str | None
doors: time | None
begin: time | None
end: time | None
status: str | None
id: int
publish: int
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigScheduleItemIn(*, item_datetime, was, wer, wo)[Quellcode]

Bases: BaseModel

item_datetime: datetime
was: str
wer: str
wo: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigScheduleItemOut(*, id=None, gig_id, item_datetime, was, wer, wo, is_fixed=False)[Quellcode]

Bases: BaseModel

id: int | None
gig_id: int
item_datetime: datetime
was: str
wer: str
wo: str
is_fixed: bool
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigScheduleOut(*, items=<factory>)[Quellcode]

Bases: BaseModel

items: List[GigScheduleItemOut]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigScheduleBulkItemIn(*, id=None, item_datetime, was, wer, wo)[Quellcode]

Bases: BaseModel

id: int | None
item_datetime: datetime
was: str
wer: str
wo: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigScheduleBulkUpdateIn(*, items=<factory>)[Quellcode]

Bases: BaseModel

items: List[GigScheduleBulkItemIn]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SetOut(*, id, position, pause, setlist_name, songs)[Quellcode]

Bases: BaseModel

id: int
position: int
pause: time | None
setlist_name: str | None
songs: list[SongOut]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongInSetOut(*, id, setsong_id=None, song_id, position=None, title, duration, singer_lead, singer_background, interpret, genre=None, tone_key=None, ytlink=None, comment=None, brass, status=None)[Quellcode]

Bases: BaseModel

id: int
setsong_id: int | None
song_id: int
position: int | None
title: str
duration: str | None
singer_lead: str | None
singer_background: str | None
interpret: str | None
genre: str | None
tone_key: str | None
comment: str | None
brass: int | None
status: str | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SetInGigOut(*, id=None, gigset_id=None, set_id=None, set_name='', pause=None, setlist_name='', songs)[Quellcode]

Bases: BaseModel

id: int | None
gigset_id: int | None
set_id: int | None
set_name: str | None
pause: str | None
setlist_name: str | None
songs: List[SongInSetOut]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigSetlistTimingOut(*, schedule=<factory>, pause_before=<factory>, set_end=<factory>)[Quellcode]

Bases: BaseModel

schedule: Dict[str, List[str]]
pause_before: Dict[str, int]
set_end: Dict[str, str]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigSetlistOut(*, id, name, datum, organizer=None, kind_of_gig=None, venue=None, doors=None, begin=None, end=None, status=None, publish=None, sets, timing=None)[Quellcode]

Bases: BaseModel

id: int
name: str
datum: str | None
organizer: str | None
kind_of_gig: str | None
venue: str | None
doors: str | None
begin: str | None
end: str | None
status: str | None
publish: str | None
sets: List[SetInGigOut]
timing: GigSetlistTimingOut | None
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongInSetLM(*, id, title, interpret, position, tone_key=None, comment=None, uebersprungen=None, eingeschoben=None, feedback=None)[Quellcode]

Bases: BaseModel

id: int
title: str
interpret: str
position: int
tone_key: str | None
comment: str | None
uebersprungen: bool | None
eingeschoben: bool | None
feedback: int | None
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongInSetLMUpdate(*, id, uebersprungen=None, eingeschoben=None, feedback=None)[Quellcode]

Bases: BaseModel

id: int
uebersprungen: bool | None
eingeschoben: bool | None
feedback: int | None
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SetInGigLM(*, id, position, pause=None, setlist_name=None, songs)[Quellcode]

Bases: BaseModel

id: int
position: int
pause: str | None
setlist_name: str | None
songs: List[SongInSetLM]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigSetListLiveMode(*, id, name, datum, doors=None, begin=None, end=None, sets)[Quellcode]

Bases: BaseModel

id: int
name: str
datum: str | None
doors: str | None
begin: str | None
end: str | None
sets: List[SetInGigLM]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GetSetlistIn(*, id, name, datum, organizer=None, kind_of_gig=None, venue=None, doors=None, begin=None, end=None, status=None, publish=None, sets)[Quellcode]

Bases: BaseModel

id: int
name: str
datum: str | None
organizer: str | None
kind_of_gig: str | None
venue: str | None
doors: str | None
begin: str | None
end: str | None
status: str | None
publish: str | None
sets: List[SetInGigOut]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongToSetIn[Quellcode]

Bases: object

gigId: int
songId: int
setId: int
position: int
class backend.schemas.TodoInSong(*, id, id_song, id_reh, id_user, todo, dt, done)[Quellcode]

Bases: BaseModel

id: int | None
id_song: int
id_reh: int
id_user: int
todo: str
dt: datetime | None
done: bool
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongInReh(*, id=None, id_rehearsal, id_song, interpret, title, status, comment, setlist_comment, todo, song_todos=<factory>, done)[Quellcode]

Bases: BaseModel

id: int | None
id_rehearsal: int
id_song: int
interpret: str
title: str
status: str
comment: str | None
setlist_comment: str | None
todo: str | None
song_todos: List[TodoInSong] | None
done: bool
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongRehearsalHistoryTodo(*, id, id_user, todo, done)[Quellcode]

Bases: BaseModel

id: int
id_user: int
todo: str
done: bool
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongRehearsalHistoryEntry(*, rehearsal_id, rehearsal_date, comment=None, todo=None, done=False, rehearsal_comment=None, todos=<factory>)[Quellcode]

Bases: BaseModel

rehearsal_id: int
rehearsal_date: datetime
comment: str | None
todo: str | None
done: bool
rehearsal_comment: str | None
todos: List[SongRehearsalHistoryTodo]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigPlayedEntry(*, gig_id, gig_name, gig_date, feedback=None, uebersprungen=None, eingeschoben=None)[Quellcode]

Bases: BaseModel

gig_id: int
gig_name: str
gig_date: str
feedback: int | None
uebersprungen: bool | None
eingeschoben: bool | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.CompanionSong(*, song_id, title, interpret, count)[Quellcode]

Bases: BaseModel

song_id: int
title: str
interpret: str
count: int
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SongStatistics(*, rehearsal_count=0, first_rehearsal=None, last_rehearsal=None, gig_count=0, gigs_played=<factory>, feedback_count=0, feedback_avg=None, feedback_distribution=<factory>, skipped_count=0, inserted_count=0, companion_songs=<factory>)[Quellcode]

Bases: BaseModel

rehearsal_count: int
first_rehearsal: str | None
last_rehearsal: str | None
gig_count: int
gigs_played: List[GigPlayedEntry]
feedback_count: int
feedback_avg: float | None
feedback_distribution: dict
skipped_count: int
inserted_count: int
companion_songs: List[CompanionSong]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigOverviewEntry(*, gig_id, gig_name, gig_date, song_count, skipped_count, inserted_count, feedback_avg=None)[Quellcode]

Bases: BaseModel

gig_id: int
gig_name: str
gig_date: str
song_count: int
skipped_count: int
inserted_count: int
feedback_avg: float | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.TopSongEntry(*, song_id, title, interpret, count)[Quellcode]

Bases: BaseModel

song_id: int
title: str
interpret: str
count: int
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GenreTimelinePoint(*, label, date=None, kind_of_gig=None, genre_counts=<factory>, total=0)[Quellcode]

Bases: BaseModel

label: str
date: str | None
kind_of_gig: str | None
genre_counts: dict
total: int
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GenrePaletteOut(*, palette=<factory>)[Quellcode]

Bases: BaseModel

palette: dict
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SeasonStatistics(*, jahr=None, gig_count=0, played_gig_count=0, total_songs=0, unique_songs=0, skipped_count=0, inserted_count=0, feedback_count=0, feedback_avg=None, feedback_distribution=<factory>, genre_distribution=<factory>, genre_timeline=<factory>, top_songs=<factory>, gigs_overview=<factory>)[Quellcode]

Bases: BaseModel

jahr: int | None
gig_count: int
played_gig_count: int
total_songs: int
unique_songs: int
skipped_count: int
inserted_count: int
feedback_count: int
feedback_avg: float | None
feedback_distribution: dict
genre_distribution: dict
genre_timeline: List[GenreTimelinePoint]
top_songs: List[TopSongEntry]
gigs_overview: List[GigOverviewEntry]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigStatsSongEntry(*, song_id, title, interpret, position, feedback=None, uebersprungen=None, eingeschoben=None)[Quellcode]

Bases: BaseModel

song_id: int
title: str
interpret: str
position: int
feedback: int | None
uebersprungen: bool | None
eingeschoben: bool | None
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigStatsSetEntry(*, set_name, feedback_avg=None, songs=<factory>)[Quellcode]

Bases: BaseModel

set_name: str
feedback_avg: float | None
songs: List[GigStatsSongEntry]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.GigStatistics(*, gig_id, gig_name, gig_date, song_count=0, skipped_count=0, inserted_count=0, feedback_count=0, feedback_avg=None, feedback_distribution=<factory>, genre_distribution=<factory>, genre_timeline=<factory>, sets=<factory>)[Quellcode]

Bases: BaseModel

gig_id: int
gig_name: str
gig_date: str
song_count: int
skipped_count: int
inserted_count: int
feedback_count: int
feedback_avg: float | None
feedback_distribution: dict
genre_distribution: dict
genre_timeline: List[GenreTimelinePoint]
sets: List[GigStatsSetEntry]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.RehListElem(*, id, begin, end=None, comment=None, ical='', songs=<factory>)[Quellcode]

Bases: BaseModel

id: int
begin: datetime
end: datetime | None
comment: str | None
ical: str | None
songs: List[SongInReh] | None
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.NewRehDict(*, begin, end=None, comment)[Quellcode]

Bases: BaseModel

begin: datetime
end: datetime | None
comment: str | None
validate_time_range()[Quellcode]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.UserListElem(*, id, user_name, clear_name, email)[Quellcode]

Bases: BaseModel

id: int
user_name: str
clear_name: str
email: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyFeedbackOut(*, id=-1, id_sv_field, id_user, value=None, comment='')[Quellcode]

Bases: BaseModel

id: int | None
id_sv_field: int
id_user: int
value: str | None
comment: str | None
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyFieldsOut(*, id, id_survey, field_text, feedbacks=<factory>)[Quellcode]

Bases: BaseModel

id: int
id_survey: int
field_text: str
feedbacks: List[SurveyFeedbackOut]
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyQuestionOut(*, id, kind_of_survey, rf_survey, released, release_date, closed, fields, user_created)[Quellcode]

Bases: BaseModel

id: int
kind_of_survey: str
rf_survey: str
released: bool
release_date: datetime
closed: bool
fields: List[SurveyFieldsOut]
user_created: int
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyList(*, id, kind_of_survey, rf_survey, released, closed, release_date, user_created)[Quellcode]

Bases: BaseModel

id: int
kind_of_survey: str
rf_survey: str
released: bool
closed: bool
release_date: datetime
user_created: int
model_config = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyFieldIn(*, field_text)[Quellcode]

Bases: BaseModel

field_text: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.SurveyIn(*, kind_of_survey, rf_survey, released, closed, fields)[Quellcode]

Bases: BaseModel

kind_of_survey: str
rf_survey: str
released: bool
closed: bool
fields: List[SurveyFieldIn]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.PublicSongHistogram(*, genre, count)[Quellcode]

Bases: BaseModel

genre: str
count: int
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class backend.schemas.PublicDate(*, Datum, Name, Ort, Einlass=None, Beginn=None, Ende=None, Veranstalter=None, Art=None)[Quellcode]

Bases: BaseModel

Datum: str
Name: str
Ort: str
Einlass: str | None
Beginn: str | None
Ende: str | None
Veranstalter: str | None
Art: str | None
classmethod from_gig(gig)[Quellcode]
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].