@startuml
set namespaceSeparator ::

class "mensaapp::providers::essenProvider.dart::EssenProvider" {
  +double ratingGeschmack
  +double ratingQuali
  +String freiText
  +void setRatingGeschmack()
  +void setRatingQuali()
  +void setFreiText()
  +void resetAllFields()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::essenProvider.dart::EssenProvider"

class "mensaapp::providers::languageProvider.dart::LanguageProvider" {
  +Map<String, dynamic> languageData
  +String language
  +void setLanguage()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::languageProvider.dart::LanguageProvider"

class "mensaapp::providers::ambienteProvider.dart::AmbienteProvider" {
  +double ratingFrage1
  +double ratingFrage2
  +String freiText
  +void setRatingFrage1()
  +void setRatingFrage2()
  +void setFreiText()
  +void resetAllFields()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::ambienteProvider.dart::AmbienteProvider"

class "mensaapp::providers::spezielleErnaehrungProvider.dart::SpezielleErnaehrungProvider" {
  +double frage1
  +double frage2
  +String freiText
  +void setRatingFrage1()
  +void setRatingFrage2()
  +void setFreiText()
  +void resetAllFields()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::spezielleErnaehrungProvider.dart::SpezielleErnaehrungProvider"

class "mensaapp::providers::spaceProvider.dart::SpaceProvider" {
  +int selectedSpace
  +List<Widget> spaces
  +void setSelectedSpace()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::spaceProvider.dart::SpaceProvider"

class "mensaapp::providers::pageProvider.dart::PageProvider" {
  +int selectedPage
  +int selectedEssenID
  +String selectedEssenName
  +List<Widget> pages
  +void changePage()
  +void setSelectedEssen()
  +void resetSelectedEssen()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::pageProvider.dart::PageProvider"

class "mensaapp::providers::serviceProvider.dart::ServiceProvider" {
  +double ratingFrage1
  +double ratingFrage2
  +String freiText
  +void setRatingFrage1()
  +void setRatingFrage2()
  +void setFreiText()
  +void resetAllFields()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::serviceProvider.dart::ServiceProvider"

class "mensaapp::providers::anmerkungProvider.dart::AnmerkungProvider" {
  +double ratingFrage1
  +double ratingFrage2
  +String freiText
  +void setRatingFrage1()
  +void setRatingFrage2()
  +void setFreiText()
  +void resetAllFields()
}

"flutter::src::foundation::change_notifier.dart::ChangeNotifier" <|-- "mensaapp::providers::anmerkungProvider.dart::AnmerkungProvider"

class "mensaapp::spaces::spaceHome.dart::SpaceHome" {
  +State<SpaceHome> createState()
}

"flutter::src::widgets::framework.dart::StatefulWidget" <|-- "mensaapp::spaces::spaceHome.dart::SpaceHome"

class "mensaapp::spaces::spaceHome.dart::_SpaceHomeState" {
  +List<String> tempTexts
  -Timer _timer
  +String text
  +int index
  +Map<int, String> indexMap
  +bool disableRateTimeDebug
  +void initState()
  +void dispose()
  -void _showNotRateTimeDialog()
  +Widget build()
}

"mensaapp::spaces::spaceHome.dart::_SpaceHomeState" o-- "dart::async::Timer"
"flutter::src::widgets::framework.dart::State" <|-- "mensaapp::spaces::spaceHome.dart::_SpaceHomeState"

class "mensaapp::spaces::spaceRate.dart::SpaceRate" {
  -void _showDeleteDialog()
  +void change_backend_ip()
  +void enter_pin()
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::spaces::spaceRate.dart::SpaceRate"

class "mensaapp::main.dart::MyApp" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::main.dart::MyApp"

class "mensaapp::main.dart::MyHome" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::main.dart::MyHome"

class "mensaapp::modules::ratingStars.dart::RatingStars" {
  +Function onRate
  +double initRating
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::modules::ratingStars.dart::RatingStars"

class "mensaapp::modules::SpeechDetect.dart::SpeechDetect" {
  {static} +dynamic prompt()
}

class "mensaapp::modules::fetchMenu.dart::FetchMenu" {
  {static} +DateTime lastFetch
  {static} +bool fetched
  {static} +dynamic get()
  {static} +dynamic fromCache()
  {static} +dynamic fromRequest()
  {static} +dynamic storeCache()
  {static} +dynamic loadCache()
}

class "mensaapp::modules::databaseService.dart::DatabaseService" {
  +SupabaseClient supabase
  +void getAllRatings()
  +bool checkIfRatingExists()
  +dynamic sendDataToSupabase()
  -void _showConfirmationDialog()
}

"mensaapp::modules::databaseService.dart::DatabaseService" o-- "supabase::src::supabase_client.dart::SupabaseClient"

class "mensaapp::modules::ratingEmote.dart::RatingEmote" {
  +Function onRate
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::modules::ratingEmote.dart::RatingEmote"

class "mensaapp::pages::pageService.dart::PageService" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageService.dart::PageService"

class "mensaapp::pages::pageSpezielleErnaehrung.dart::PageSpezielleErnaehrung" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageSpezielleErnaehrung.dart::PageSpezielleErnaehrung"

class "mensaapp::pages::pageHome.dart::PageHome" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageHome.dart::PageHome"

class "mensaapp::pages::pageEssenSelect.dart::PageEssenSelect" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageEssenSelect.dart::PageEssenSelect"

class "mensaapp::pages::pageAmbiente.dart::PageAmbiente" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageAmbiente.dart::PageAmbiente"

class "mensaapp::pages::pageAnmerkungen.dart::PageAnmerkungen" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageAnmerkungen.dart::PageAnmerkungen"

class "mensaapp::pages::pageEssen.dart::PageEssen" {
  +Widget build()
}

"flutter::src::widgets::framework.dart::StatelessWidget" <|-- "mensaapp::pages::pageEssen.dart::PageEssen"


@enduml
