{"openapi":"3.1.0","info":{"title":"Paperball Public API","summary":"Portfolio-, Markt- und Simulationsdaten deines Kontos — per API-Key oder OAuth authentifiziert. Der primäre programmatische Zugang ist der MCP-Server unter /mcp.","version":"1.0.0"},"paths":{},"components":{"schemas":{"AbgleichFehler":{"properties":{"isin":{"type":"string","title":"Isin"},"bereich":{"type":"string","enum":["migration","prices","dividends"],"title":"Bereich"},"grund":{"type":"string","enum":["currency_mismatch","price_break","dividend_break","provider_error","failed"],"title":"Grund"}},"type":"object","required":["isin","bereich","grund"],"title":"AbgleichFehler"},"AbgleichUebersprungen":{"properties":{"isin":{"type":"string","title":"Isin"},"grund":{"type":"string","const":"no_symbol","title":"Grund"}},"type":"object","required":["isin","grund"],"title":"AbgleichUebersprungen"},"AccountCreditsResponse":{"properties":{"verteilung":{"type":"string","enum":["topf","anteile"],"title":"Verteilung"},"monat_limit":{"type":"integer","title":"Monat Limit"},"monat_verbraucht":{"type":"integer","title":"Monat Verbraucht"},"paket_rest":{"type":"integer","title":"Paket Rest"},"geteilt_verbraucht":{"type":"integer","title":"Geteilt Verbraucht"},"reserviert":{"type":"integer","title":"Reserviert"},"rest_frei":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rest Frei"},"kosten":{"additionalProperties":{"type":"integer"},"type":"object","title":"Kosten"},"personen":{"items":{"$ref":"#/components/schemas/CreditPersonResponse"},"type":"array","title":"Personen"}},"type":"object","required":["verteilung","monat_limit","monat_verbraucht","paket_rest","geteilt_verbraucht","reserviert","rest_frei","kosten","personen"],"title":"AccountCreditsResponse","description":"Das Credit-Guthaben eines Accounts und wie es verteilt ist (`services/credits`)."},"AccountCreditsSetzen":{"properties":{"verteilung":{"type":"string","enum":["topf","anteile"],"title":"Verteilung"},"grenzen":{"items":{"$ref":"#/components/schemas/CreditGrenze"},"type":"array","title":"Grenzen","default":[]}},"type":"object","required":["verteilung"],"title":"AccountCreditsSetzen"},"AdminCancelSubscriptionRequest":{"properties":{"mode":{"type":"string","enum":["period_end","immediate"],"title":"Mode","default":"period_end"},"downgrade_to":{"type":"string","title":"Downgrade To","default":"test"}},"type":"object","title":"AdminCancelSubscriptionRequest"},"AdminSupportAccessResponse":{"properties":{"active":{"anyOf":[{"$ref":"#/components/schemas/SupportAccessActive"},{"type":"null"}]},"request":{"anyOf":[{"$ref":"#/components/schemas/SupportAccessRequestItem"},{"type":"null"}]},"history":{"items":{"$ref":"#/components/schemas/SupportAccessHistoryItem"},"type":"array","title":"History"},"sessions":{"items":{"$ref":"#/components/schemas/SupportAccessSessionItem"},"type":"array","title":"Sessions"},"blocked_reason":{"anyOf":[{"type":"string","enum":["self","inactive","admin"]},{"type":"null"}],"title":"Blocked Reason"}},"type":"object","required":["history","sessions"],"title":"AdminSupportAccessResponse"},"AggregateDashboardResponse":{"properties":{"sub_accounts_count":{"type":"integer","title":"Sub Accounts Count"},"sub_accounts_max":{"type":"integer","title":"Sub Accounts Max"},"total_tables":{"type":"integer","title":"Total Tables"},"total_simulations":{"type":"integer","title":"Total Simulations"},"total_favorites":{"type":"integer","title":"Total Favorites"},"by_sub_account":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"By Sub Account"}},"type":"object","required":["sub_accounts_count","sub_accounts_max","total_tables","total_simulations","total_favorites","by_sub_account"],"title":"AggregateDashboardResponse"},"AkquisePayload":{"properties":{"visitor_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Visitor Id"},"source":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Source"},"medium":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Medium"},"campaign":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Campaign"},"term":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Term"},"content":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Content"},"referrer":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Referrer"},"landing_page":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Landing Page"},"gclid":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Gclid"},"fbclid":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Fbclid"},"last_touch_source":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Last Touch Source"},"last_touch_medium":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Last Touch Medium"},"last_touch_campaign":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Last Touch Campaign"}},"type":"object","title":"AkquisePayload","description":"Attributions-Daten, die das Frontend beim Registrieren mitsendet.\n\nAlle Felder optional — ein Besucher ohne Kampagnen-Link schickt nur die\n``visitor_id``."},"AllowMemberKeysRequest":{"properties":{"allow":{"type":"boolean","title":"Allow"}},"type":"object","required":["allow"],"title":"AllowMemberKeysRequest"},"AnbieterSetzen":{"properties":{"provider_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Provider Id"}},"type":"object","title":"AnbieterSetzen","description":"`null` loest die Zuordnung — fuer Einzelaktien ist das der richtige Wert."},"AndereMittel":{"properties":{"bezeichnung":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Bezeichnung"},"betrag":{"type":"number","maximum":1000000000.0,"exclusiveMinimum":0.0,"title":"Betrag"}},"additionalProperties":false,"type":"object","required":["betrag"],"title":"AndereMittel","description":"Was eine einmalige Ausgabe außer dem Depot bezahlt — Bausparguthaben,\nBauspardarlehen, Förderung, Erspartes. Fest, wie im Vertrag (ohne Inflation)."},"AnmeldeAnfrage":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"totp_code":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Totp Code"}},"type":"object","required":["email","password"],"title":"AnmeldeAnfrage"},"AnreicherungsStand":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","title":"AnreicherungsStand","description":"Wo die Anreicherung dieses Wertpapiers steht (aus `fund_catalog`)."},"AnsparEinstellungen":{"properties":{"jahre":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Jahre"},"betrag":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Betrag"},"takt":{"type":"string","enum":["monthly","quarterly","semiannual","annual"],"title":"Takt","default":"monthly"},"dynamik_pro_jahr":{"type":"number","maximum":20.0,"minimum":0.0,"title":"Dynamik Pro Jahr","default":0.0},"zielvermoegen":{"anyOf":[{"type":"number","maximum":10000000000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Zielvermoegen"},"kauf":{"type":"string","enum":["ziel","untergewichtet"],"title":"Kauf","default":"ziel"},"gebuehr_fix":{"anyOf":[{"type":"number","maximum":1000.0,"minimum":0.0},{"type":"null"}],"title":"Gebuehr Fix"},"gebuehr_prozent":{"anyOf":[{"type":"number","maximum":20.0,"minimum":0.0},{"type":"null"}],"title":"Gebuehr Prozent"},"zulage":{"anyOf":[{"$ref":"#/components/schemas/AvDepotZulage"},{"type":"null"}]}},"type":"object","required":["jahre","betrag"],"title":"AnsparEinstellungen","description":"Eine Ansparphase vor der Entnahme — in Monte Carlo und im Backtest.\n\nDie Rate fliesst jede Periode ins Depot und steigt jedes Jahr um\n`dynamik_pro_jahr` (0 = feste Rate). Danach beginnt der Entnahmeplan; seine\nBetraege stehen in heutigem Geld.\n\nNur der Backtest kennt einzelne Positionen und Ordergebuehren: `kauf`\n(nach Zielaufteilung oder zuerst in untergewichtete Positionen) und die\nSparplan-Konditionen (`None` = dieselben wie die Bank-Konditionen des\nLaufs). Monte Carlo rechnet mit fester Aufteilung vor Kosten und\nignoriert alle drei."},"ApiDeleteSchalterRequest":{"properties":{"erlaubt":{"type":"boolean","title":"Erlaubt"}},"type":"object","required":["erlaubt"],"title":"ApiDeleteSchalterRequest"},"ApiDeleteSchalterResponse":{"properties":{"erlaubt":{"type":"boolean","title":"Erlaubt"},"darf_aendern":{"type":"boolean","title":"Darf Aendern"},"wirksam":{"type":"boolean","title":"Wirksam"}},"type":"object","required":["erlaubt","darf_aendern","wirksam"],"title":"ApiDeleteSchalterResponse","description":"Antwortform des Bausteins (`mcp_loeschen.schalter_stand`) — gleich in jeder App."},"ApiKeyAuditEntry":{"properties":{"id":{"type":"integer","title":"Id"},"tool_name":{"type":"string","title":"Tool Name"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"error_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Text"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tool_name","status_code","duration_ms","created_at"],"title":"ApiKeyAuditEntry"},"ApiKeyCreateRequest":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"expires_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires Days"},"scopes":{"anyOf":[{"items":{"type":"string","enum":["read","run_simulation","watchlist:write","delete"]},"type":"array","minItems":1},{"type":"null"}],"title":"Scopes"}},"type":"object","required":["name"],"title":"ApiKeyCreateRequest"},"ApiKeyCreateResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"full_key":{"type":"string","title":"Full Key"},"key_prefix":{"type":"string","title":"Key Prefix"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"warning":{"type":"string","title":"Warning"}},"type":"object","required":["id","name","full_key","key_prefix","scopes","created_at","warning"],"title":"ApiKeyCreateResponse","description":"Wird genau 1× nach Erstellung zurückgegeben — full Key inklusive."},"ApiKeyRenameRequest":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"}},"type":"object","required":["name"],"title":"ApiKeyRenameRequest"},"ApiKeyRequest":{"properties":{"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["api_key"],"title":"ApiKeyRequest"},"ApiKeyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"}},"type":"object","required":["id","name","key_prefix","scopes","created_at"],"title":"ApiKeyResponse","description":"Standard-Response für API-Key (OHNE Secret)."},"ApiKeyTestResponse":{"properties":{"valid":{"type":"boolean","title":"Valid"},"grund":{"anyOf":[{"type":"string","enum":["invalid_key","http_error","provider_error","unexpected_response","timeout","connection_error"]},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["valid"],"title":"ApiKeyTestResponse","description":"Ergebnis eines Schlüssel-Tests: Werte, kein Satz (siehe `schluessel_test`)."},"ApiKeyUsageEntry":{"properties":{"api_key_id":{"type":"integer","title":"Api Key Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"calls_this_month":{"type":"integer","title":"Calls This Month"}},"type":"object","required":["api_key_id","name","key_prefix","calls_this_month"],"title":"ApiKeyUsageEntry"},"ApiUsageResponse":{"properties":{"month":{"type":"string","title":"Month"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"used_total":{"type":"integer","title":"Used Total"},"keys":{"items":{"$ref":"#/components/schemas/ApiKeyUsageEntry"},"type":"array","title":"Keys"}},"type":"object","required":["month","used_total","keys"],"title":"ApiUsageResponse","description":"§7.2 Kunden-Dashboard: Monats-Zähler pro Key + effektives Monats-Kontingent."},"ApiUsageTopEntry":{"properties":{"api_key_id":{"type":"integer","title":"Api Key Id"},"key_name":{"type":"string","title":"Key Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"user_id":{"type":"integer","title":"User Id"},"user_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Username"},"user_email":{"type":"string","title":"User Email"},"calls":{"type":"integer","title":"Calls"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"}},"type":"object","required":["api_key_id","key_name","key_prefix","user_id","user_email","calls"],"title":"ApiUsageTopEntry"},"ApiUsageTopResponse":{"properties":{"month":{"type":"string","title":"Month"},"top":{"items":{"$ref":"#/components/schemas/ApiUsageTopEntry"},"type":"array","title":"Top"}},"type":"object","required":["month","top"],"title":"ApiUsageTopResponse"},"AuszahlungsAnfrage":{"properties":{"amount_eur_minor":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Eur Minor"}},"type":"object","required":["amount_eur_minor"],"title":"AuszahlungsAnfrage"},"AuthorizeDecisionIn":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"scope":{"type":"string","title":"Scope"},"state":{"type":"string","maxLength":512,"title":"State"},"code_challenge":{"type":"string","title":"Code Challenge"},"code_challenge_method":{"type":"string","title":"Code Challenge Method","default":"S256"}},"type":"object","required":["client_id","redirect_uri","code_challenge"],"title":"AuthorizeDecisionIn"},"AvDepotAufteilung":{"properties":{"kennung":{"type":"string","title":"Kennung"},"grundlage_von":{"type":"string","format":"date","title":"Grundlage Von"},"grundlage_bis":{"type":"string","format":"date","title":"Grundlage Bis"},"echt_ab":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Echt Ab"},"kosten_bp":{"items":{"type":"integer"},"type":"array","title":"Kosten Bp"}},"type":"object","required":["kennung","grundlage_von","grundlage_bis","kosten_bp"],"title":"AvDepotAufteilung","description":"Eine vorgefertigte Aufteilung mit Tabellen, in der Reihenfolge der Anzeige."},"AvDepotAufteilungenResponse":{"properties":{"aufteilungen":{"items":{"$ref":"#/components/schemas/AvDepotAufteilung"},"type":"array","title":"Aufteilungen"}},"type":"object","required":["aufteilungen"],"title":"AvDepotAufteilungenResponse"},"AvDepotDaten":{"properties":{"jahre":{"type":"integer","title":"Jahre"},"kind_jahre_hoechstens":{"type":"integer","title":"Kind Jahre Hoechstens"},"perzentile":{"items":{"type":"integer"},"type":"array","title":"Perzentile"},"zulage_monat_im_folgejahr":{"type":"integer","title":"Zulage Monat Im Folgejahr"},"echt_ab":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Echt Ab"},"gleitpfad":{"anyOf":[{"$ref":"#/components/schemas/AvDepotGleitpfad"},{"type":"null"}]},"nominal":{"$ref":"#/components/schemas/AvDepotTabelle"},"heute":{"$ref":"#/components/schemas/AvDepotTabelle"},"abweichung_kombiniert":{"type":"number","title":"Abweichung Kombiniert"}},"type":"object","required":["jahre","kind_jahre_hoechstens","perzentile","zulage_monat_im_folgejahr","nominal","heute","abweichung_kombiniert"],"title":"AvDepotDaten"},"AvDepotFaktorenResponse":{"properties":{"aufteilung":{"type":"string","title":"Aufteilung"},"kosten_bp":{"type":"integer","title":"Kosten Bp"},"grundlage_von":{"type":"string","format":"date","title":"Grundlage Von"},"grundlage_bis":{"type":"string","format":"date","title":"Grundlage Bis"},"pfade":{"type":"integer","title":"Pfade"},"berechnet_am":{"type":"string","format":"date-time","title":"Berechnet Am"},"daten":{"$ref":"#/components/schemas/AvDepotDaten"}},"type":"object","required":["aufteilung","kosten_bp","grundlage_von","grundlage_bis","pfade","berechnet_am","daten"],"title":"AvDepotFaktorenResponse"},"AvDepotGleitpfad":{"properties":{"jahre":{"type":"integer","title":"Jahre"},"start":{"type":"number","title":"Start"},"ende":{"type":"number","title":"Ende"},"stufen":{"items":{"$ref":"#/components/schemas/AvDepotStufe"},"type":"array","title":"Stufen"}},"type":"object","required":["jahre","start","ende","stufen"],"title":"AvDepotGleitpfad","description":"Umschichtung des Standarddepots: ab `jahre` Jahren vor der Auszahlung\nJahr für Jahr vom Aktienanteil `start` über die `stufen` des Gesetzes auf\n`ende` (§ 1 Abs. 1c Nr. 5 AltZertG n. F.)."},"AvDepotStufe":{"properties":{"jahre_vor":{"type":"integer","title":"Jahre Vor"},"hoechstens":{"type":"number","title":"Hoechstens"}},"type":"object","required":["jahre_vor","hoechstens"],"title":"AvDepotStufe","description":"Eine Stufe des Ablaufmanagements: `jahre_vor` Jahre vor der Auszahlung\nhöchstens `hoechstens` im Fonds der höheren Risikoklasse."},"AvDepotTabelle":{"properties":{"eigen":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Eigen"},"zulage_alle":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Zulage Alle"},"zulage_jahre":{"items":{"items":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}]},"type":"array"},"type":"array","title":"Zulage Jahre"}},"type":"object","required":["eigen","zulage_alle","zulage_jahre"],"title":"AvDepotTabelle","description":"Perzentile der Einzahlungsfaktoren (`services/av_depot_faktoren.py`).\n\nJe Spardauer `n` (Index `n − 1`) die Werte `[p10, p50, p90]` aus `perzentile`.\n`zulage_jahre[m − 1][n − 1]` gilt nur für `m ≤ n − 1`, sonst `None` — dann\ngilt `zulage_alle`."},"AvDepotZulage":{"properties":{"kinder_bis_jahr":{"items":{"type":"integer"},"type":"array","maxItems":10,"title":"Kinder Bis Jahr"},"berufseinsteiger":{"type":"boolean","title":"Berufseinsteiger","default":false}},"additionalProperties":false,"type":"object","title":"AvDepotZulage","description":"Die Angaben zu den Zulagen des Altersvorsorgedepots — Monte Carlo (K2)\nund Backtest (Z1).\n\nDie Grundzulage folgt aus der Sparrate selbst (`av_depot.zulagen_je_monat`\nbzw. `zulagen_je_tag`); hier stehen nur, was sich daraus nicht ergibt: je\nKind das letzte Beitragsjahr mit Kindergeld (0 = das erste — in Monte Carlo\nab heute, im Backtest ab Beginn des Zeitraums), und ob der einmalige Bonus\nfür Berufseinsteiger unter 25 gilt. Gerechnet wird nur im Konto\n`av_depot_de` (`av_depot.zulage_angaben` prüft es)."},"BalanceResponse":{"properties":{"today_used":{"type":"integer","title":"Today Used"},"today_limit":{"type":"integer","title":"Today Limit"},"today_remaining":{"type":"integer","title":"Today Remaining"},"month_used":{"type":"integer","title":"Month Used"},"month_limit":{"type":"integer","title":"Month Limit"},"month_remaining":{"type":"integer","title":"Month Remaining"},"credits_balance":{"type":"integer","title":"Credits Balance"},"available":{"type":"integer","title":"Available"},"account_verteilung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Verteilung"},"person":{"anyOf":[{"$ref":"#/components/schemas/PersonGrenze"},{"type":"null"}]},"kosten":{"additionalProperties":{"type":"integer"},"type":"object","title":"Kosten"},"can_purchase":{"type":"boolean","title":"Can Purchase"},"currency":{"type":"string","title":"Currency"},"packs":{"items":{"$ref":"#/components/schemas/PaketAngebot"},"type":"array","title":"Packs"},"purchasable":{"type":"boolean","title":"Purchasable"},"usage_30_days":{"additionalProperties":{"type":"integer"},"type":"object","title":"Usage 30 Days"},"packs_30_days_cents":{"type":"integer","title":"Packs 30 Days Cents"}},"type":"object","required":["today_used","today_limit","today_remaining","month_used","month_limit","month_remaining","credits_balance","available","account_verteilung","person","kosten","can_purchase","currency","packs","purchasable","usage_30_days","packs_30_days_cents"],"title":"BalanceResponse"},"BankAnfrage":{"properties":{"iban":{"type":"string","maxLength":42,"minLength":15,"title":"Iban"},"account_holder":{"type":"string","maxLength":200,"minLength":2,"title":"Account Holder"},"bic":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Bic"},"totp_code":{"type":"string","maxLength":10,"title":"Totp Code"}},"type":"object","required":["iban","account_holder","totp_code"],"title":"BankAnfrage"},"BankAntwort":{"properties":{"id":{"type":"integer","title":"Id"},"state":{"type":"string","title":"State"},"iban_last4":{"type":"string","title":"Iban Last4"},"iban_country":{"type":"string","title":"Iban Country"},"account_holder":{"type":"string","title":"Account Holder"},"email_confirmed":{"type":"boolean","title":"Email Confirmed"},"penny_verified":{"type":"boolean","title":"Penny Verified"},"penny_attempts_left":{"type":"integer","title":"Penny Attempts Left"},"approved":{"type":"boolean","title":"Approved"},"payouts_blocked_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Payouts Blocked Until"}},"type":"object","required":["id","state","iban_last4","iban_country","account_holder","email_confirmed","penny_verified","penny_attempts_left","approved","payouts_blocked_until"],"title":"BankAntwort"},"BannerCreate":{"properties":{"scope":{"type":"string","title":"Scope","default":"all"},"style":{"type":"string","title":"Style","default":"info"},"title":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Title"},"message":{"additionalProperties":true,"type":"object","title":"Message"},"cta_label":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cta Label"},"cta_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Url"},"is_dismissible":{"type":"boolean","title":"Is Dismissible","default":true},"is_active":{"type":"boolean","title":"Is Active","default":true},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"}},"type":"object","required":["message"],"title":"BannerCreate"},"BannerUpdate":{"properties":{"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style"},"title":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Title"},"message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Message"},"cta_label":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cta Label"},"cta_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Url"},"is_dismissible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Dismissible"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"}},"type":"object","title":"BannerUpdate"},"BatchInviteRequest":{"properties":{"emails":{"items":{"type":"string","format":"email"},"type":"array","title":"Emails"}},"type":"object","required":["emails"],"title":"BatchInviteRequest"},"BatchInviteResponse":{"properties":{"success":{"items":{"type":"string"},"type":"array","title":"Success"},"already_member":{"items":{"type":"string"},"type":"array","title":"Already Member"},"already_invited":{"items":{"type":"string"},"type":"array","title":"Already Invited"},"invalid":{"items":{"type":"string"},"type":"array","title":"Invalid"},"domain_not_allowed":{"items":{"type":"string"},"type":"array","title":"Domain Not Allowed","default":[]},"limit_exceeded":{"type":"boolean","title":"Limit Exceeded","default":false}},"type":"object","required":["success","already_member","already_invited","invalid"],"title":"BatchInviteResponse"},"BelegOut":{"properties":{"reference":{"type":"string","title":"Reference"},"received_at":{"type":"string","format":"date-time","title":"Received At"}},"type":"object","required":["reference","received_at"],"title":"BelegOut","description":"Für jede Eingabe dieselbe Form."},"BestaetigenOut":{"properties":{"status":{"type":"string","enum":["confirmed","already_confirmed"],"title":"Status"}},"type":"object","required":["status"],"title":"BestaetigenOut"},"BetriebZeile":{"properties":{"ampel":{"type":"string","enum":["ok","warn","fail"],"title":"Ampel"},"offene_fehler":{"type":"integer","title":"Offene Fehler"},"fehler_24h":{"type":"integer","title":"Fehler 24H"},"worker_erreichbar":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Worker Erreichbar"},"worker":{"type":"integer","title":"Worker"},"laufende_auftraege":{"type":"integer","title":"Laufende Auftraege"}},"type":"object","required":["ampel","offene_fehler","fehler_24h","worker_erreichbar","worker","laufende_auftraege"],"title":"BetriebZeile"},"Body_admin_update_translation_key_api_admin_i18n_translation_keys__key__put":{"properties":{"default_text":{"type":"string","title":"Default Text"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","required":["default_text"],"title":"Body_admin_update_translation_key_api_admin_i18n_translation_keys__key__put"},"Body_aktualisieren_api_watchlist_refresh_post":{"properties":{"item_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Item Ids"}},"type":"object","title":"Body_aktualisieren_api_watchlist_refresh_post"},"Body_append_prices_api_simulation_securities__security_id__append_prices_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"scope":{"type":"string","title":"Scope","default":"user"},"bei_dubletten":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bei Dubletten"},"separator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Separator"},"decimal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decimal"},"date_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Format"},"date_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Column"},"price_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Column"}},"type":"object","required":["file"],"title":"Body_append_prices_api_simulation_securities__security_id__append_prices_post"},"Body_ausschuettungen_aus_datei_api_enrichment_fund__isin__ausschuettungen_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"bei_dubletten":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bei Dubletten"},"trotz_abweichung":{"type":"boolean","title":"Trotz Abweichung","default":false},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"separator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Separator"},"decimal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decimal"},"date_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Format"},"date_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Column"},"amount_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Column"}},"type":"object","required":["file"],"title":"Body_ausschuettungen_aus_datei_api_enrichment_fund__isin__ausschuettungen_post"},"Body_ausschuettungen_vorschau_api_enrichment_fund__isin__ausschuettungen_vorschau_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"separator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Separator"},"decimal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decimal"},"date_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Format"},"date_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Column"},"amount_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Column"}},"type":"object","required":["file"],"title":"Body_ausschuettungen_vorschau_api_enrichment_fund__isin__ausschuettungen_vorschau_post"},"Body_bulk_upload_distributions_api_simulation_tables__table_id__distributions_post":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files"},"scope":{"type":"string","title":"Scope","default":"user"}},"type":"object","required":["files"],"title":"Body_bulk_upload_distributions_api_simulation_tables__table_id__distributions_post"},"Body_kosten_zuordnen_api_admin_reporting_kosten_zuordnen_post":{"properties":{"ids":{"items":{"type":"integer"},"type":"array","title":"Ids"},"kampagne":{"type":"string","title":"Kampagne"}},"type":"object","required":["ids","kampagne"],"title":"Body_kosten_zuordnen_api_admin_reporting_kosten_zuordnen_post"},"Body_kursdatei_vorschau_api_watchlist_prices_preview_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"separator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Separator"},"decimal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decimal"},"date_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Format"},"date_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Column"},"price_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Column"}},"type":"object","required":["file"],"title":"Body_kursdatei_vorschau_api_watchlist_prices_preview_post"},"Body_kurse_aus_datei_api_enrichment_fund__isin__kurse_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"bei_dubletten":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bei Dubletten"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"separator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Separator"},"decimal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decimal"},"date_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Format"},"date_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Column"},"price_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Column"}},"type":"object","required":["file"],"title":"Body_kurse_aus_datei_api_enrichment_fund__isin__kurse_post"},"Body_kurse_hochladen_api_watchlist_prices_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"scope":{"type":"string","title":"Scope","default":"user"},"bei_dubletten":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bei Dubletten"},"item_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Item Id"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"ertragsverwendung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ertragsverwendung"},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"wkn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wkn"},"separator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Separator"},"decimal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decimal"},"date_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Format"},"date_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Column"},"price_column":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Column"}},"type":"object","required":["file"],"title":"Body_kurse_hochladen_api_watchlist_prices_post"},"Body_login_api_auth_login_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"^password$"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"password","title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_login_api_auth_login_post"},"Body_login_recovery_api_auth_login_recovery_post":{"properties":{"email":{"type":"string","title":"Email"},"code":{"type":"string","title":"Code"},"pre_auth_token":{"type":"string","title":"Pre Auth Token"}},"type":"object","required":["email","code","pre_auth_token"],"title":"Body_login_recovery_api_auth_login_recovery_post"},"Body_login_sms_api_auth_login_sms_post":{"properties":{"email":{"type":"string","title":"Email"},"code":{"type":"string","title":"Code"},"pre_auth_token":{"type":"string","title":"Pre Auth Token"}},"type":"object","required":["email","code","pre_auth_token"],"title":"Body_login_sms_api_auth_login_sms_post"},"Body_login_totp_api_auth_login_totp_post":{"properties":{"email":{"type":"string","title":"Email"},"code":{"type":"string","title":"Code"},"pre_auth_token":{"type":"string","title":"Pre Auth Token"}},"type":"object","required":["email","code","pre_auth_token"],"title":"Body_login_totp_api_auth_login_totp_post"},"Body_logout_all_api_auth_logout_all_post":{"properties":{"current_refresh_token":{"type":"string","title":"Current Refresh Token"}},"type":"object","title":"Body_logout_all_api_auth_logout_all_post"},"Body_logout_api_auth_logout_post":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","title":"Body_logout_api_auth_logout_post"},"Body_owner_test_saml_config_api_auth_sso_owner_test_saml_post":{"properties":{"metadata_url":{"type":"string","title":"Metadata Url"},"metadata_xml":{"type":"string","title":"Metadata Xml"}},"type":"object","title":"Body_owner_test_saml_config_api_auth_sso_owner_test_saml_post"},"Body_parse_idp_metadata_api_auth_sso_saml_parse_metadata_post":{"properties":{"metadata_url":{"type":"string","title":"Metadata Url"},"metadata_xml":{"type":"string","title":"Metadata Xml"}},"type":"object","title":"Body_parse_idp_metadata_api_auth_sso_saml_parse_metadata_post"},"Body_preview_csv_file_api_simulation_csv_preview_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_preview_csv_file_api_simulation_csv_preview_post"},"Body_saml_assertion_consumer_service_api_auth_sso_saml_acs_post":{"properties":{"SAMLResponse":{"type":"string","title":"Samlresponse"},"RelayState":{"type":"string","title":"Relaystate"}},"type":"object","required":["SAMLResponse"],"title":"Body_saml_assertion_consumer_service_api_auth_sso_saml_acs_post"},"Body_token_endpoint_api_oauth_token_post":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"client_id":{"type":"string","title":"Client Id"},"code":{"type":"string","title":"Code"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"code_verifier":{"type":"string","title":"Code Verifier"},"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["grant_type","client_id"],"title":"Body_token_endpoint_api_oauth_token_post"},"Body_upload_avatar_api_settings_profile_avatar_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_avatar_api_settings_profile_avatar_post"},"Body_upload_whitelabel_logo_api_advisor_whitelabel_logo_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_whitelabel_logo_api_advisor_whitelabel_logo_post"},"Body_verify_email_api_auth_verify_email_post":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"Body_verify_email_api_auth_verify_email_post"},"BoersenQuelle":{"properties":{"symbol":{"type":"string","title":"Symbol"},"full_symbol":{"type":"string","title":"Full Symbol"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"mic_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mic Code"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"name":{"type":"string","title":"Name","default":""},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"earliest_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Earliest Date"},"days_available":{"type":"integer","title":"Days Available","default":0},"estimated_trading_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Trading Days"},"is_best":{"type":"boolean","title":"Is Best","default":false}},"type":"object","required":["symbol","full_symbol"],"title":"BoersenQuelle"},"BoersenQuellenAntwort":{"properties":{"isin":{"type":"string","title":"Isin"},"aktuell_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aktuell Symbol"},"aktuell_exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aktuell Exchange"},"sources":{"items":{"$ref":"#/components/schemas/BoersenQuelle"},"type":"array","title":"Sources"},"grund":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["isin","sources"],"title":"BoersenQuellenAntwort"},"BrandingImageUpload":{"properties":{"image_data":{"type":"string","title":"Image Data"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"}},"type":"object","required":["image_data"],"title":"BrandingImageUpload","description":"Schema für Bild-Upload"},"BrevoSchluesselIn":{"properties":{"api_key":{"type":"string","title":"Api Key"},"fremdes_konto_erlauben":{"type":"boolean","title":"Fremdes Konto Erlauben","default":false}},"type":"object","required":["api_key"],"title":"BrevoSchluesselIn"},"BudgetRequest":{"properties":{"budget_eur":{"type":"number","title":"Budget Eur"}},"type":"object","required":["budget_eur"],"title":"BudgetRequest"},"BudgetStand":{"properties":{"monat":{"type":"string","title":"Monat"},"kurs_eur_je_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Kurs Eur Je Usd"},"grenze_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grenze Usd"},"grenze_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grenze Eur"},"verbraucht_usd":{"type":"number","title":"Verbraucht Usd"},"verbraucht_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Verbraucht Eur"},"rest_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rest Usd"},"rest_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rest Eur"},"anteil_prozent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Anteil Prozent"},"erschoepft":{"type":"boolean","title":"Erschoepft"},"aufrufe":{"type":"integer","title":"Aufrufe"},"websuchen":{"type":"integer","title":"Websuchen"}},"type":"object","required":["monat","kurs_eur_je_usd","grenze_usd","grenze_eur","verbraucht_usd","verbraucht_eur","rest_usd","rest_eur","anteil_prozent","erschoepft","aufrufe","websuchen"],"title":"BudgetStand","description":"Monatsbudget für Claude (`fund_enrichment_service.get_budget_status`).\n\nUSD ist die Rechnung; die EUR-Felder sind None, wenn kein aktueller\nUSD-Kurs vorliegt. `grenze_usd` None heißt: kein Budget eingestellt."},"CSVPreview":{"properties":{"headers":{"items":{"type":"string"},"type":"array","title":"Headers"},"sample_rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Sample Rows"},"total_rows":{"type":"integer","title":"Total Rows"},"detected_separator":{"type":"string","title":"Detected Separator"},"detected_decimal":{"type":"string","title":"Detected Decimal"},"detected_date_format":{"type":"string","title":"Detected Date Format"},"detected_price_column":{"type":"integer","title":"Detected Price Column","default":4},"filename":{"type":"string","title":"Filename"}},"type":"object","required":["headers","sample_rows","total_rows","detected_separator","detected_decimal","detected_date_format","filename"],"title":"CSVPreview"},"ChangePasswordRequest":{"properties":{"current_password":{"type":"string","title":"Current Password"},"new_password":{"type":"string","minLength":8,"title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"ChangePasswordRequest"},"ChangeRequest":{"properties":{"plan_code":{"type":"string","title":"Plan Code"},"interval":{"type":"string","title":"Interval","default":"monthly"}},"type":"object","required":["plan_code"],"title":"ChangeRequest"},"CheckoutRequest":{"properties":{"plan_code":{"type":"string","title":"Plan Code"},"interval":{"type":"string","title":"Interval","default":"monthly"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"organization_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Organization Name"}},"type":"object","required":["plan_code"],"title":"CheckoutRequest"},"CheckoutResponse":{"properties":{"checkout_url":{"type":"string","title":"Checkout Url"},"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["checkout_url","session_id"],"title":"CheckoutResponse"},"CheckoutStatusResponse":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"payment_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Status"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"plan_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Code"},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"art":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Art"}},"type":"object","required":["status","payment_status","mode","plan_code","plan_name"],"title":"CheckoutStatusResponse","description":"Was die Rücksprungseite braucht — keine Beträge, keine Kundendaten."},"ClaudeApiKeyRequest":{"properties":{"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["api_key"],"title":"ClaudeApiKeyRequest"},"ClientRegistrationIn":{"properties":{"client_name":{"type":"string","maxLength":120,"minLength":1,"title":"Client Name"},"redirect_uris":{"items":{},"type":"array","maxItems":10,"minItems":1,"title":"Redirect Uris"},"logo_uri":{"type":"string","maxLength":500,"title":"Logo Uri"},"client_uri":{"type":"string","maxLength":500,"title":"Client Uri"},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method"},"grant_types":{"items":{},"type":"array","title":"Grant Types"},"response_types":{"items":{},"type":"array","title":"Response Types"}},"type":"object","required":["client_name","redirect_uris"],"title":"ClientRegistrationIn"},"CodeAenderung":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Label"},"partner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Partner Id"},"plans":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Plans"},"intervals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Intervals"},"currencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Currencies"},"discount_percent":{"anyOf":[{"type":"number","maximum":100.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Discount Percent"},"discount_duration":{"anyOf":[{"type":"string","enum":["months","forever"]},{"type":"null"}],"title":"Discount Duration"},"discount_months":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Discount Months"},"share_percent":{"anyOf":[{"type":"number","maximum":100.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Share Percent"},"share_months":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Share Months"},"share_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Share Until"},"redeemable_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Redeemable Until"},"max_redemptions":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Redemptions"},"new_customers_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"New Customers Only"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"CodeAenderung","description":"Nur gesendete Felder werden geändert (``model_fields_set``)."},"CodeAntwort":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"partner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Partner Id"},"partner_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partner Name"},"plans":{"items":{"type":"string"},"type":"array","title":"Plans"},"intervals":{"items":{"type":"string"},"type":"array","title":"Intervals"},"currencies":{"items":{"type":"string"},"type":"array","title":"Currencies"},"discount_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Percent"},"discount_duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discount Duration"},"discount_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discount Months"},"share_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Share Percent"},"share_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Share Months"},"share_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Share Until"},"redeemable_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Redeemable Until"},"max_redemptions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Redemptions"},"new_customers_only":{"type":"boolean","title":"New Customers Only"},"active":{"type":"boolean","title":"Active"},"einloesungen":{"type":"integer","title":"Einloesungen"},"provision_eur_minor":{"type":"integer","title":"Provision Eur Minor"},"grund":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grund"},"registrierungs_link":{"type":"string","title":"Registrierungs Link"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","code","label","partner_id","partner_name","plans","intervals","currencies","discount_percent","discount_duration","discount_months","share_percent","share_months","share_until","redeemable_until","max_redemptions","new_customers_only","active","einloesungen","provision_eur_minor","grund","registrierungs_link","created_at"],"title":"CodeAntwort"},"CodeEingabe":{"properties":{"code":{"type":"string","maxLength":64,"minLength":2,"title":"Code"},"partner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Partner Id"},"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Label"},"plans":{"items":{"type":"string"},"type":"array","title":"Plans"},"intervals":{"items":{"type":"string"},"type":"array","title":"Intervals"},"currencies":{"items":{"type":"string"},"type":"array","title":"Currencies"},"discount_percent":{"anyOf":[{"type":"number","maximum":100.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Discount Percent"},"discount_duration":{"anyOf":[{"type":"string","enum":["months","forever"]},{"type":"null"}],"title":"Discount Duration"},"discount_months":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Discount Months"},"share_percent":{"anyOf":[{"type":"number","maximum":100.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Share Percent"},"share_months":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Share Months"},"share_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Share Until"},"redeemable_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Redeemable Until"},"max_redemptions":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Redemptions"},"new_customers_only":{"type":"boolean","title":"New Customers Only","default":true}},"type":"object","required":["code"],"title":"CodeEingabe"},"CodePruefungAnfrage":{"properties":{"code":{"type":"string","maxLength":64,"minLength":2,"title":"Code"},"plan":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Plan"},"interval":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Interval"},"currency":{"anyOf":[{"type":"string","maxLength":3},{"type":"null"}],"title":"Currency"}},"type":"object","required":["code"],"title":"CodePruefungAnfrage"},"CodePruefungAntwort":{"properties":{"gueltig":{"type":"boolean","title":"Gueltig"},"grund":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grund"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"discount_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Percent"},"discount_duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discount Duration"},"discount_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discount Months"},"plans":{"items":{"type":"string"},"type":"array","title":"Plans","default":[]},"intervals":{"items":{"type":"string"},"type":"array","title":"Intervals","default":[]}},"type":"object","required":["gueltig"],"title":"CodePruefungAntwort","description":"Was das Eingabefeld anzeigt.\n\n``grund`` ist ein **Maschinencode** (``code_expired``, ``code_unknown``, …),\nkein Satz — die Oberfläche übersetzt ihn zu ``codes.error.<grund>``\n(Regel #23). Ein Satz von hier wäre in der Sprache des Servers, nicht in\nder des Kunden."},"CorporateCancelSubscriptionRequest":{"properties":{"mode":{"type":"string","enum":["period_end","immediate"],"title":"Mode","default":"period_end"},"downgrade_to":{"type":"string","title":"Downgrade To","default":"test"}},"type":"object","title":"CorporateCancelSubscriptionRequest"},"CorporateCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"max_seats":{"type":"integer","title":"Max Seats","default":20},"contract_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract Start"},"contract_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Contact Email"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"owner_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Owner User Id"},"owner_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Owner Email"},"owner_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Username"},"role_name":{"type":"string","title":"Role Name"},"role_color":{"type":"string","title":"Role Color","default":"#8b5cf6"},"features":{"additionalProperties":true,"type":"object","title":"Features","default":{}}},"type":"object","required":["name","role_name"],"title":"CorporateCreateRequest"},"CorporateDetail":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"owner_id":{"type":"integer","title":"Owner Id"},"owner_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Username"},"owner_email":{"type":"string","title":"Owner Email"},"member_count":{"type":"integer","title":"Member Count"},"max_seats":{"type":"integer","title":"Max Seats"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"contract_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract Start"},"contract_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End"},"sso_enabled":{"type":"boolean","title":"Sso Enabled"},"sso_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Provider"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_corporate":{"type":"boolean","title":"Is Corporate","default":false},"subscription_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Plan"},"plan_source":{"type":"string","title":"Plan Source","default":"stripe"},"manual_plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Manual Plan Until"},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"subscription_cancel_at_period_end":{"type":"boolean","title":"Subscription Cancel At Period End","default":false},"has_active_stripe_subscription":{"type":"boolean","title":"Has Active Stripe Subscription","default":false},"is_test":{"type":"boolean","title":"Is Test","default":false},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Email"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"sso_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Domain"},"sso_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Client Id"},"sso_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Tenant Id"},"saml_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Entity Id"},"saml_sso_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Sso Url"},"saml_slo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Slo Url"},"saml_certificate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Certificate"},"saml_metadata_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Metadata Url"},"saml_attribute_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Attribute Email"},"saml_attribute_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Attribute Name"},"sso_self_service_enabled":{"type":"boolean","title":"Sso Self Service Enabled","default":false},"sp_metadata_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sp Metadata Url"},"total_tables":{"type":"integer","title":"Total Tables","default":0},"total_results":{"type":"integer","title":"Total Results","default":0},"total_activities_30d":{"type":"integer","title":"Total Activities 30D","default":0},"owner_link_expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Link Expires At"}},"type":"object","required":["id","name","slug","owner_id","owner_email","member_count","max_seats","role_name","contract_start","contract_end","sso_enabled","sso_provider","created_at","contact_name","contact_email","contact_phone","notes","sso_domain","sso_client_id","sso_tenant_id"],"title":"CorporateDetail"},"CorporateListItem":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"owner_id":{"type":"integer","title":"Owner Id"},"owner_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Username"},"owner_email":{"type":"string","title":"Owner Email"},"member_count":{"type":"integer","title":"Member Count"},"max_seats":{"type":"integer","title":"Max Seats"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"contract_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract Start"},"contract_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End"},"sso_enabled":{"type":"boolean","title":"Sso Enabled"},"sso_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Provider"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_corporate":{"type":"boolean","title":"Is Corporate","default":false},"subscription_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Plan"},"plan_source":{"type":"string","title":"Plan Source","default":"stripe"},"manual_plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Manual Plan Until"},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"subscription_cancel_at_period_end":{"type":"boolean","title":"Subscription Cancel At Period End","default":false},"has_active_stripe_subscription":{"type":"boolean","title":"Has Active Stripe Subscription","default":false},"is_test":{"type":"boolean","title":"Is Test","default":false}},"type":"object","required":["id","name","slug","owner_id","owner_email","member_count","max_seats","role_name","contract_start","contract_end","sso_enabled","sso_provider","created_at"],"title":"CorporateListItem"},"CorporatePlanUpdateRequest":{"properties":{"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"plan_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Source"},"manual_plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Manual Plan Until"}},"type":"object","title":"CorporatePlanUpdateRequest"},"CorporateStatsResponse":{"properties":{"total_corporates":{"type":"integer","title":"Total Corporates"},"total_users":{"type":"integer","title":"Total Users"},"active_contracts":{"type":"integer","title":"Active Contracts"},"expiring_soon":{"type":"integer","title":"Expiring Soon"},"sso_enabled_count":{"type":"integer","title":"Sso Enabled Count"}},"type":"object","required":["total_corporates","total_users","active_contracts","expiring_soon","sso_enabled_count"],"title":"CorporateStatsResponse"},"CorporateUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"max_seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Seats"},"contract_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract Start"},"contract_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Contact Email"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"is_test":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Test"}},"type":"object","title":"CorporateUpdateRequest"},"CountryCreate":{"properties":{"code":{"type":"string","title":"Code"},"name_german":{"type":"string","title":"Name German"},"name_english":{"type":"string","title":"Name English"},"name_native":{"type":"string","title":"Name Native"},"flag_emoji":{"type":"string","title":"Flag Emoji"},"default_language":{"type":"string","title":"Default Language","default":"de"},"default_currency":{"type":"string","title":"Default Currency","default":"EUR"},"available_languages":{"items":{"type":"string"},"type":"array","title":"Available Languages","default":["de"]},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["code","name_german","name_english","name_native","flag_emoji"],"title":"CountryCreate"},"CountryUpdate":{"properties":{"name_german":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name German"},"name_english":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name English"},"name_native":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Native"},"flag_emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flag Emoji"},"default_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Language"},"default_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Currency"},"available_languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Languages"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"ranking_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ranking Visible"},"ranking_auto":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ranking Auto"},"min_users_for_ranking":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Users For Ranking"},"min_portfolios_for_ranking":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Portfolios For Ranking"},"show_login":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Login"},"show_register":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Register"}},"type":"object","title":"CountryUpdate"},"CreditCheckoutRequest":{"properties":{"pack":{"type":"string","title":"Pack"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"}},"type":"object","required":["pack"],"title":"CreditCheckoutRequest","description":"Kauf eines Credit-Pakets — NICHT der Abo-Checkout."},"CreditCheckoutResponse":{"properties":{"checkout_url":{"type":"string","title":"Checkout Url"},"purchase_id":{"type":"integer","title":"Purchase Id"},"total_credits":{"type":"integer","title":"Total Credits"},"total_price_cents":{"type":"integer","title":"Total Price Cents"},"currency":{"type":"string","title":"Currency"},"is_stub":{"type":"boolean","title":"Is Stub"}},"type":"object","required":["checkout_url","purchase_id","total_credits","total_price_cents","currency","is_stub"],"title":"CreditCheckoutResponse"},"CreditGrenze":{"properties":{"user_id":{"type":"integer","title":"User Id"},"grenze":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Grenze"}},"type":"object","required":["user_id"],"title":"CreditGrenze"},"CreditGutschriftResponse":{"properties":{"paket_id":{"type":"integer","title":"Paket Id"},"credits_granted":{"type":"integer","title":"Credits Granted"},"gueltig_bis":{"type":"string","title":"Gueltig Bis"},"ins_account":{"type":"boolean","title":"Ins Account"}},"type":"object","required":["paket_id","credits_granted","gueltig_bis","ins_account"],"title":"CreditGutschriftResponse","description":"Was die Gutschrift der Verwaltung angelegt hat."},"CreditPersonResponse":{"properties":{"user_id":{"type":"integer","title":"User Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"ist_inhaber":{"type":"boolean","title":"Ist Inhaber"},"verbraucht":{"type":"integer","title":"Verbraucht"},"aus_monat":{"type":"integer","title":"Aus Monat"},"grenze":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grenze"}},"type":"object","required":["user_id","username","email","ist_inhaber","verbraucht","aus_monat","grenze"],"title":"CreditPersonResponse"},"CurrenciesResponse":{"properties":{"currencies":{"items":{"type":"string"},"type":"array","title":"Currencies"},"default":{"type":"string","title":"Default"},"groups":{"items":{"$ref":"#/components/schemas/WaehrungsGruppe"},"type":"array","title":"Groups"}},"type":"object","required":["currencies","default","groups"],"title":"CurrenciesResponse","description":"Die Antwort von `GET /api/auth/currencies`.\n\nAls `response_model` deklariert, damit die Form im OpenAPI-Schema steht und\n`npm run types:api` einen Typ erzeugt: Die Route hatte keins, also gab es\nsie im Vertrag nicht, und dass der Umschalter im Frontend seine eigene\nWährungsliste führte, konnte kein Gate sehen (CLAUDE.md, „Eine Antwort ohne\n`response_model` kann niemand prüfen\")."},"DataCleanupInfo":{"properties":{"original_securities":{"additionalProperties":{"type":"integer"},"type":"object","title":"Original Securities"},"common_start_date":{"type":"string","format":"date","title":"Common Start Date"},"common_end_date":{"type":"string","format":"date","title":"Common End Date"},"common_period_years":{"type":"number","title":"Common Period Years"},"removed_dates_per_security":{"additionalProperties":{"type":"integer"},"type":"object","title":"Removed Dates Per Security"},"securities_limiting_period":{"items":{"type":"string"},"type":"array","title":"Securities Limiting Period"},"is_period_sufficient":{"type":"boolean","title":"Is Period Sufficient"},"limiting_start":{"items":{"$ref":"#/components/schemas/LimitingSecurity"},"type":"array","title":"Limiting Start","default":[]},"limiting_end":{"items":{"$ref":"#/components/schemas/LimitingSecurity"},"type":"array","title":"Limiting End","default":[]},"remove_for_sufficient":{"items":{"type":"string"},"type":"array","title":"Remove For Sufficient","default":[]},"sufficient_years":{"type":"integer","title":"Sufficient Years","default":5}},"type":"object","required":["original_securities","common_start_date","common_end_date","common_period_years","removed_dates_per_security","securities_limiting_period","is_period_sufficient"],"title":"DataCleanupInfo"},"DateRange":{"properties":{"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"}},"type":"object","title":"DateRange","description":"Erster und letzter Tag einer Kursreihe als ISO-Datum."},"DeeplApiKeyRequest":{"properties":{"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["api_key"],"title":"DeeplApiKeyRequest"},"DividendEntry":{"properties":{"date":{"type":"string","title":"Date"},"amount":{"type":"number","title":"Amount"}},"type":"object","required":["date","amount"],"title":"DividendEntry"},"EinfuehrungUpdate":{"properties":{"geschlossen":{"type":"boolean","title":"Geschlossen"}},"type":"object","required":["geschlossen"],"title":"EinfuehrungUpdate"},"Einkunft":{"properties":{"bezeichnung":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Bezeichnung"},"betrag":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Betrag"},"ab_jahr":{"type":"integer","maximum":70.0,"minimum":0.0,"title":"Ab Jahr","default":0},"bis_jahr":{"anyOf":[{"type":"integer","maximum":70.0,"minimum":0.0},{"type":"null"}],"title":"Bis Jahr"},"inflationsangepasst":{"type":"boolean","title":"Inflationsangepasst","default":true}},"additionalProperties":false,"type":"object","required":["betrag"],"title":"Einkunft","description":"Eine regelmäßige Einkunft in Monte Carlo — Rente, Miete, Teilzeitlohn.\n\nSie deckt zuerst den Bedarf des Entnahmeplans; aus dem Depot kommt nur der\nRest, ein Überschuss fließt ins Depot. Sie zählt frühestens ab Rentenbeginn\nund, mit `bis_jahr`, höchstens bis zum Ende dieses Jahres (Teilzeitlohn bis\nzur Rente, Miete bis zum Verkauf)."},"EinladungAnfrage":{"properties":{"token":{"type":"string","title":"Token"},"password":{"type":"string","minLength":12,"title":"Password"}},"type":"object","required":["token","password"],"title":"EinladungAnfrage"},"EinladungAntwort":{"properties":{"email":{"type":"string","title":"Email"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"mail_versandt":{"type":"boolean","title":"Mail Versandt"}},"type":"object","required":["email","expires_at","mail_versandt"],"title":"EinladungAntwort"},"EinladungEingabe":{"properties":{"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Email"}},"type":"object","title":"EinladungEingabe","description":"Wen einladen — leer heisst: die hinterlegte Partner-Adresse."},"Einmalbetrag":{"properties":{"art":{"type":"string","enum":["ausgabe","zufluss"],"title":"Art"},"bezeichnung":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Bezeichnung"},"betrag":{"type":"number","maximum":100000000.0,"minimum":0.0,"title":"Betrag"},"im_jahr":{"type":"integer","maximum":70.0,"minimum":0.0,"title":"Im Jahr","default":0},"inflationsangepasst":{"type":"boolean","title":"Inflationsangepasst","default":true},"alle_jahre":{"anyOf":[{"type":"integer","maximum":70.0,"minimum":1.0},{"type":"null"}],"title":"Alle Jahre"},"mal":{"anyOf":[{"type":"integer","maximum":70.0,"minimum":1.0},{"type":"null"}],"title":"Mal"},"andere_mittel":{"items":{"$ref":"#/components/schemas/AndereMittel"},"type":"array","maxItems":5,"title":"Andere Mittel"},"hoechstens_aus_depot":{"anyOf":[{"type":"number","maximum":1000000000.0,"minimum":0.0},{"type":"null"}],"title":"Hoechstens Aus Depot"},"kredit_erlaubt":{"type":"boolean","title":"Kredit Erlaubt","default":false},"sparpause_jahre":{"anyOf":[{"type":"integer","maximum":50.0,"minimum":1.0},{"type":"null"}],"title":"Sparpause Jahre"}},"additionalProperties":false,"type":"object","required":["art","betrag"],"title":"Einmalbetrag","description":"Ein einmaliger Betrag in Monte Carlo — Hauskauf, Auto, Erbschaft, Abfindung.\n\nFällig im ersten Monat des Jahres `im_jahr` (gezählt ab heute), auf Wunsch\nalle `alle_jahre` Jahre wieder, höchstens `mal`-mal (ohne `mal` bis zum\nEnde). Netto, in heutigem Geld. Gilt mit jedem Plan, auch in der Sparphase.\nEine Ausgabe, die nicht ganz bezahlt werden kann, zählt als „nicht\ngereicht“ (Konzept `docs/KONZEPT_EINKUENFTE_EREIGNISSE.md`, Teil B)."},"EintragIn":{"properties":{"email":{"type":"string","maxLength":508,"title":"Email"},"plan":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Plan"},"source":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Source"}},"type":"object","required":["email"],"title":"EintragIn"},"EmailAendernRequest":{"properties":{"new_email":{"type":"string","format":"email","title":"New Email"},"password":{"type":"string","minLength":1,"title":"Password"}},"type":"object","required":["new_email","password"],"title":"EmailAendernRequest"},"EmailBestaetigtResponse":{"properties":{"angemeldet":{"type":"boolean","title":"Angemeldet"},"user":{"anyOf":[{"$ref":"#/components/schemas/UserResponse"},{"type":"null"}]}},"type":"object","required":["angemeldet"],"title":"EmailBestaetigtResponse","description":"Die Adresse ist bestätigt — und, wenn ``angemeldet``, die Sitzung eröffnet.\n\nDie Sitzung trägt allein die HttpOnly-Cookies; der Body enthält keine\nToken. ``angemeldet`` ist ``false`` beim Adresswechsel eines bestätigten\nKontos (das ist schon angemeldet) und bei einem Konto mit zweitem Faktor\n(das meldet sich regulär an, damit der Faktor gefragt wird)."},"EmailCodeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","pattern":"^[0-9]{6}$","title":"Code","description":"sechs Ziffern aus der Mail"}},"type":"object","required":["email","code"],"title":"EmailCodeRequest","description":"Der Code aus der Bestätigungsmail, eingetippt im Fenster der Registrierung."},"EmailDomainAdminResponse":{"properties":{"id":{"type":"integer","title":"Id"},"domain":{"type":"string","title":"Domain"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created By Id"},"created_by_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Email"}},"type":"object","required":["id","domain","created_at"],"title":"EmailDomainAdminResponse"},"EmailDomainCreateRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"EmailDomainCreateRequest"},"EmailDomainResponse":{"properties":{"id":{"type":"integer","title":"Id"},"domain":{"type":"string","title":"Domain"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","domain","created_at"],"title":"EmailDomainResponse"},"EmailTemplateUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"html_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Content"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_reviewed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Reviewed"}},"type":"object","title":"EmailTemplateUpdate","description":"Schema für E-Mail-Template Update"},"EntnahmeEinstellungen":{"properties":{"regel":{"type":"string","enum":["fester_betrag","prozent_vom_wert","auszahlungsplan"],"title":"Regel"},"betrag":{"anyOf":[{"type":"number","maximum":1000000000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Betrag"},"prozent_pro_jahr":{"anyOf":[{"type":"number","maximum":100.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Prozent Pro Jahr"},"takt":{"type":"string","enum":["monthly","quarterly","semiannual","annual"],"title":"Takt","default":"monthly"},"inflation_pro_jahr":{"type":"number","maximum":20.0,"minimum":-5.0,"title":"Inflation Pro Jahr","default":0.0},"puffer":{"anyOf":[{"$ref":"#/components/schemas/PufferEinstellungen"},{"type":"null"}]},"verkauf":{"type":"string","enum":["anteilig","uebergewichtet"],"title":"Verkauf","default":"anteilig"},"leitplanken":{"anyOf":[{"$ref":"#/components/schemas/Leitplanken"},{"type":"null"}]},"teilkapital_prozent":{"anyOf":[{"type":"number","maximum":30.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Teilkapital Prozent"},"teilkapital_steuersatz":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Teilkapital Steuersatz"}},"type":"object","required":["regel"],"title":"EntnahmeEinstellungen","description":"Ein Entnahmeplan — dasselbe Schema für Simulation, Vorlage und Monte Carlo."},"EntnahmeVorlageCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"einstellungen":{"$ref":"#/components/schemas/EntnahmeEinstellungen"}},"type":"object","required":["name","einstellungen"],"title":"EntnahmeVorlageCreate"},"EntnahmeVorlageResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"einstellungen":{"$ref":"#/components/schemas/EntnahmeEinstellungen"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","einstellungen","created_at","updated_at"],"title":"EntnahmeVorlageResponse"},"EntnahmeVorlageUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"einstellungen":{"anyOf":[{"$ref":"#/components/schemas/EntnahmeEinstellungen"},{"type":"null"}]}},"type":"object","title":"EntnahmeVorlageUpdate"},"ErgebnisBestenlistenResponse":{"properties":{"display_currency":{"type":"string","title":"Display Currency"},"treffer":{"type":"integer","title":"Treffer"},"listen":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object","title":"Listen"}},"type":"object","required":["display_currency","treffer","listen"],"title":"ErgebnisBestenlistenResponse","description":"Die gefilterten Bestenlisten eines Ergebnisses (`ergebnis_portfolios.BESTENLISTEN`)."},"ErklaerungAdminOut":{"properties":{"id":{"type":"integer","title":"Id"},"reference":{"type":"string","title":"Reference"},"kind":{"type":"string","title":"Kind"},"status":{"type":"string","title":"Status"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"received_at":{"type":"string","format":"date-time","title":"Received At"},"processed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processed At"},"effective_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"declaration":{"items":{"$ref":"#/components/schemas/ErklaerungsZeile"},"type":"array","title":"Declaration"},"outcome":{"items":{"type":"string"},"type":"array","title":"Outcome"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"}},"type":"object","required":["id","reference","kind","status","name","email","received_at","processed_at","effective_at","revoked_at","resolved_at","declaration","outcome","errors"],"title":"ErklaerungAdminOut"},"ErklaerungIn":{"properties":{"kind":{"type":"string","enum":["ordinary","extraordinary","withdrawal"],"title":"Kind"},"name":{"type":"string","maxLength":400,"title":"Name"},"email":{"type":"string","maxLength":320,"title":"Email"},"scope":{"type":"string","enum":["personal","account","all"],"title":"Scope"},"timing":{"type":"string","enum":["earliest","date"],"title":"Timing","default":"earliest"},"requested_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requested Date"},"reason":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"},"invoice_number":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Invoice Number"},"website":{"type":"string","title":"Website","default":""}},"type":"object","required":["kind","name","email","scope"],"title":"ErklaerungIn"},"ErklaerungenOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ErklaerungAdminOut"},"type":"array","title":"Items"},"open_count":{"type":"integer","title":"Open Count"}},"type":"object","required":["items","open_count"],"title":"ErklaerungenOut"},"ErklaerungsZeile":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["label","value"],"title":"ErklaerungsZeile"},"ErscheinungsbildZeile":{"properties":{"ampel":{"type":"string","enum":["ok","warn","fail"],"title":"Ampel"},"hinweisleisten_aktiv":{"type":"integer","title":"Hinweisleisten Aktiv"}},"type":"object","required":["ampel","hinweisleisten_aktiv"],"title":"ErscheinungsbildZeile"},"ExchangeNameSchema":{"properties":{"mic_code":{"type":"string","title":"Mic Code"},"short_name":{"type":"string","title":"Short Name"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},"type":"object","required":["mic_code","short_name"],"title":"ExchangeNameSchema"},"ExchangeNameUpdate":{"properties":{"short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Name"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},"type":"object","title":"ExchangeNameUpdate"},"FaktorAktiviertResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"},"recovery_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Codes"}},"type":"object","title":"FaktorAktiviertResponse"},"FavoritenZeitverlauf":{"properties":{"zeitraeume":{"items":{"type":"string"},"type":"array","title":"Zeitraeume"},"angebot":{"items":{"type":"string"},"type":"array","title":"Angebot"},"vorgabe":{"items":{"type":"string"},"type":"array","title":"Vorgabe"},"hoechstens":{"type":"integer","title":"Hoechstens"},"werte":{"additionalProperties":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/ZeitraumKennzahlen"},{"type":"null"}]},"type":"object"},"type":"object","title":"Werte"}},"type":"object","required":["zeitraeume","angebot","vorgabe","hoechstens","werte"],"title":"FavoritenZeitverlauf","description":"Kennzahlen je gespeichertem Portfolio und Zeitraum — derselbe Vertrag\nwie der Zeitverlauf der Wertpapiere (`ZeitverlaufAntwort`), ohne Zins und\nWährung: Die gelten je Portfolio, aus seiner Abschrift."},"FeatureCreate":{"properties":{"code":{"type":"string","maxLength":50,"minLength":2,"title":"Code"},"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"type":"string","maxLength":50,"title":"Category","default":"general"},"value_type":{"type":"string","title":"Value Type","default":"boolean"},"default_value":{"type":"string","title":"Default Value","default":"false"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["code","name"],"title":"FeatureCreate"},"FeatureFlagUpdateRequest":{"properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"FeatureFlagUpdateRequest"},"FeatureResponse":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"type":"string","title":"Category"},"value_type":{"type":"string","title":"Value Type"},"default_value":{"type":"string","title":"Default Value"},"is_active":{"type":"boolean","title":"Is Active"},"sort_order":{"type":"integer","title":"Sort Order"}},"type":"object","required":["id","code","name","description","category","value_type","default_value","is_active","sort_order"],"title":"FeatureResponse"},"FeatureUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"value_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Type"},"default_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Value"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"FeatureUpdate"},"FolgeaboStand":{"properties":{"letzter_tag":{"type":"string","title":"Letzter Tag"},"plan_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Code"},"preis_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Preis Cents"},"waehrung":{"type":"string","title":"Waehrung"},"hinterlegt":{"type":"boolean","title":"Hinterlegt"},"zu_spaet":{"type":"boolean","title":"Zu Spaet"},"moeglich_ab":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moeglich Ab"}},"type":"object","required":["letzter_tag","plan_code","preis_cents","waehrung","hinterlegt","zu_spaet","moeglich_ab"],"title":"FolgeaboStand","description":"Geschenk mit „bezahlt weiter, Karte bis zum Ende“ (FLEET_CODES_SPEC §4.12)."},"ForgotPasswordRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordRequest"},"FrontendErrorBody":{"properties":{"boundary":{"type":"string","maxLength":100,"title":"Boundary"},"message":{"type":"string","maxLength":10000,"title":"Message"},"stack":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Stack"},"component_stack":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Component Stack"},"path":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Path"}},"type":"object","required":["boundary","message"],"title":"FrontendErrorBody","description":"Body-Schema vom ErrorBoundary-Component."},"FundProviderCreate":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"isin_prefixes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Isin Prefixes"},"name_patterns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Name Patterns"},"website_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name","slug"],"title":"FundProviderCreate"},"FundProviderUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"isin_prefixes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Isin Prefixes"},"name_patterns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Name Patterns"},"website_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"FundProviderUpdate"},"FundamentalAntwort":{"properties":{"isin":{"type":"string","title":"Isin"},"waehrung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waehrung"},"stand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stand"},"kennzahlen":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object","title":"Kennzahlen"},"quartale":{"items":{"$ref":"#/components/schemas/FundamentalQuartal"},"type":"array","title":"Quartale"},"jahre":{"items":{"$ref":"#/components/schemas/FundamentalJahr"},"type":"array","title":"Jahre"},"grund":{"anyOf":[{"type":"string","enum":["kein_kuerzel","falsches_papier","anbieter","teilweise"]},{"type":"null"}],"title":"Grund"}},"type":"object","required":["isin","waehrung","stand","kennzahlen","quartale","jahre","grund"],"title":"FundamentalAntwort","description":"Fundamentaldaten einer Aktie für den Aufklappbereich (`services/fundamentaldaten`)."},"FundamentalJahr":{"properties":{"geschaeftsjahr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geschaeftsjahr"},"umsatz":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Umsatz"},"bruttogewinn":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bruttogewinn"},"operatives_ergebnis":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Operatives Ergebnis"},"nettogewinn":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nettogewinn"},"eps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eps"}},"type":"object","required":["geschaeftsjahr","umsatz","bruttogewinn","operatives_ergebnis","nettogewinn","eps"],"title":"FundamentalJahr"},"FundamentalQuartal":{"properties":{"datum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datum"},"eps_ist":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eps Ist"},"eps_schaetzung":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eps Schaetzung"}},"type":"object","required":["datum","eps_ist","eps_schaetzung"],"title":"FundamentalQuartal"},"GeteilteSimulationResponse":{"properties":{"quelle":{"type":"string","enum":["portfolio","mischung","community"],"title":"Quelle"},"grundlage_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grundlage Name"},"zusammensetzung":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Zusammensetzung"},"eingaben":{"additionalProperties":true,"type":"object","title":"Eingaben"},"ergebnis":{"additionalProperties":true,"type":"object","title":"Ergebnis"},"gerechnet_am":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Gerechnet Am"},"geteilt_am":{"type":"string","format":"date-time","title":"Geteilt Am"}},"type":"object","required":["quelle","eingaben","ergebnis","geteilt_am"],"title":"GeteilteSimulationResponse","description":"Was ein geteilter Link zeigt — eine Abschrift, ohne Name und E-Mail."},"GrantRequest":{"properties":{"user_id":{"type":"integer","title":"User Id"},"credits":{"type":"integer","maximum":1000000.0,"minimum":1.0,"title":"Credits"},"grund":{"type":"string","maxLength":500,"minLength":3,"title":"Grund"}},"type":"object","required":["user_id","credits","grund"],"title":"GrantRequest"},"GuthabenResponse":{"properties":{"unbegrenzt":{"type":"boolean","title":"Unbegrenzt"},"toepfe":{"items":{"$ref":"#/components/schemas/GuthabenTopf"},"type":"array","title":"Toepfe"}},"type":"object","required":["unbegrenzt","toepfe"],"title":"GuthabenResponse"},"GuthabenTopf":{"properties":{"art":{"type":"string","enum":["monat","person","paket"],"title":"Art"},"schluessel":{"type":"string","title":"Schluessel"},"gesamt":{"type":"integer","title":"Gesamt"},"verbraucht":{"type":"integer","title":"Verbraucht"},"gueltig_bis":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Gueltig Bis"},"quelle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quelle"}},"type":"object","required":["art","schluessel","gesamt","verbraucht"],"title":"GuthabenTopf","description":"Ein Topf der Guthaben-Anzeige (FLEET_BILLING_SPEC §5.5)."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HinweisAntwort":{"properties":{"aktion":{"type":"string","enum":["spaeter","nie"],"title":"Aktion"}},"type":"object","required":["aktion"],"title":"HinweisAntwort"},"HinweisResponse":{"properties":{"anzeigen":{"type":"boolean","title":"Anzeigen"}},"type":"object","required":["anzeigen"],"title":"HinweisResponse"},"ImpersonateStartResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"target_user_id":{"type":"integer","title":"Target User Id"},"target_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Username"},"target_email":{"type":"string","title":"Target Email"},"session_uuid":{"type":"string","title":"Session Uuid"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"}},"type":"object","required":["access_token","target_user_id","target_email","session_uuid","expires_at","expires_in_seconds"],"title":"ImpersonateStartResponse","description":"Antwort beim Start: Impersonation-Token + Metadaten."},"ImpersonateStopResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"session_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Uuid"}},"type":"object","required":["success"],"title":"ImpersonateStopResponse"},"ImpersonationActionItem":{"properties":{"id":{"type":"integer","title":"Id"},"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"blocked":{"type":"boolean","title":"Blocked"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","method","path","status_code","blocked","created_at"],"title":"ImpersonationActionItem"},"ImpersonationSessionListItem":{"properties":{"id":{"type":"integer","title":"Id"},"session_uuid":{"type":"string","title":"Session Uuid"},"admin_user_id":{"type":"integer","title":"Admin User Id"},"admin_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Username"},"target_user_id":{"type":"integer","title":"Target User Id"},"target_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Username"},"target_email":{"type":"string","title":"Target Email"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"ended_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ended Reason"},"action_count":{"type":"integer","title":"Action Count"},"blocked_action_count":{"type":"integer","title":"Blocked Action Count"}},"type":"object","required":["id","session_uuid","admin_user_id","target_user_id","target_email","started_at","expires_at","ended_at","ended_reason","action_count","blocked_action_count"],"title":"ImpersonationSessionListItem"},"ImportRequest":{"properties":{"symbol":{"type":"string","title":"Symbol"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"include_dividends":{"type":"boolean","title":"Include Dividends","default":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"}},"type":"object","required":["symbol"],"title":"ImportRequest"},"ImportResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"security_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Security Id"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"name":{"type":"string","title":"Name"},"symbol":{"type":"string","title":"Symbol"},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"price_count":{"type":"integer","title":"Price Count","default":0},"dividend_count":{"type":"integer","title":"Dividend Count","default":0},"schritt":{"anyOf":[{"type":"string","enum":["quote","prices"]},{"type":"null"}],"title":"Schritt"},"grund":{"anyOf":[{"type":"string","enum":["no_api_key","provider_error","plan_required","no_data_in_range","no_data","timeout","connection_error"]},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["success","name","symbol"],"title":"ImportResponse"},"ImportStand":{"properties":{"state":{"type":"string","title":"State"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"done":{"type":"integer","title":"Done"},"total":{"type":"integer","title":"Total"},"added":{"items":{"type":"string"},"type":"array","title":"Added"},"not_added":{"items":{"$ref":"#/components/schemas/NichtHinzugefuegt"},"type":"array","title":"Not Added"}},"type":"object","required":["state","run_id","done","total","added","not_added"],"title":"ImportStand","description":"Fortschritt des Hintergrundlaufs der ISIN-Liste."},"InDatensatz":{"properties":{"item_ids":{"items":{"type":"integer"},"type":"array","title":"Item Ids"},"table_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Table Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["item_ids"],"title":"InDatensatz"},"InstrumentTypeOption":{"properties":{"value":{"type":"string","title":"Value"},"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"}},"type":"object","required":["value","key","label"],"title":"InstrumentTypeOption"},"InvitationCreate":{"properties":{"email":{"type":"string","title":"Email"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"role_id":{"type":"integer","title":"Role Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"plan_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Code"},"plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Plan Until"},"account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Name"},"account_seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Account Seats"},"rabatt_prozent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rabatt Prozent"},"rabatt_laufzeit":{"anyOf":[{"type":"string","enum":["months","forever"]},{"type":"null"}],"title":"Rabatt Laufzeit"},"rabatt_monate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rabatt Monate"},"rabatt_danach":{"anyOf":[{"type":"string","enum":["starttarif","zahlung_vorab","zahlung_spaeter"]},{"type":"null"}],"title":"Rabatt Danach"},"mail_sprache":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Sprache"},"mail_betreff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Betreff"},"mail_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Text"}},"type":"object","required":["email","role_id"],"title":"InvitationCreate"},"InvitationMailVorschau":{"properties":{"role_id":{"type":"integer","title":"Role Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"plan_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Code"},"plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Plan Until"},"account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Name"},"account_seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Account Seats"},"rabatt_prozent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rabatt Prozent"},"rabatt_laufzeit":{"anyOf":[{"type":"string","enum":["months","forever"]},{"type":"null"}],"title":"Rabatt Laufzeit"},"rabatt_monate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rabatt Monate"},"rabatt_danach":{"anyOf":[{"type":"string","enum":["starttarif","zahlung_vorab","zahlung_spaeter"]},{"type":"null"}],"title":"Rabatt Danach"},"mail_sprache":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Sprache"},"mail_betreff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Betreff"},"mail_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Text"}},"additionalProperties":false,"type":"object","required":["role_id"],"title":"InvitationMailVorschau","description":"Was die Vorschau der Einladungsmail braucht — dieselben Felder wie beim Einladen."},"InvitationMailVorschauAntwort":{"properties":{"sprache":{"type":"string","title":"Sprache"},"sprachen":{"items":{"type":"string"},"type":"array","title":"Sprachen"},"betreff":{"type":"string","title":"Betreff"},"html":{"type":"string","title":"Html"},"vorlage_betreff":{"type":"string","title":"Vorlage Betreff"},"vorlage_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vorlage Text"},"betreff_hoechstens":{"type":"integer","title":"Betreff Hoechstens"},"text_hoechstens":{"type":"integer","title":"Text Hoechstens"}},"type":"object","required":["sprache","sprachen","betreff","html","vorlage_betreff","vorlage_text","betreff_hoechstens","text_hoechstens"],"title":"InvitationMailVorschauAntwort","description":"Die Einladungsmail, wie sie rausginge, und die Vorlage als Vorbelegung."},"InvitationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"status":{"type":"string","title":"Status"},"invited_at":{"type":"string","format":"date-time","title":"Invited At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["id","email","status","invited_at","expires_at"],"title":"InvitationResponse"},"InviteAcceptRequest":{"properties":{"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"password":{"type":"string","title":"Password"},"accept_terms":{"type":"boolean","title":"Accept Terms"},"accept_privacy":{"type":"boolean","title":"Accept Privacy"},"accept_disclaimer":{"type":"boolean","title":"Accept Disclaimer","default":false},"marketing_consent":{"type":"boolean","title":"Marketing Consent","default":false}},"type":"object","required":["password","accept_terms","accept_privacy"],"title":"InviteAcceptRequest"},"InviteMemberRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"InviteMemberRequest"},"IstPortfolioPosition":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"type":"string","title":"Name"},"anteil":{"type":"number","title":"Anteil"},"betrag":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Betrag"}},"type":"object","required":["isin","name","anteil"],"title":"IstPortfolioPosition","description":"Eine Zeile der Vorlage. Die ISIN traegt die Zuordnung, der Name die Meldung."},"IstPortfolioVorlageCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"positionen":{"items":{"$ref":"#/components/schemas/IstPortfolioPosition"},"type":"array","minItems":1,"title":"Positionen"},"eingabe_modus":{"type":"string","title":"Eingabe Modus","default":"prozent"},"waehrung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waehrung"}},"type":"object","required":["name","positionen"],"title":"IstPortfolioVorlageCreate"},"IstPortfolioVorlageResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"positionen":{"items":{"$ref":"#/components/schemas/IstPortfolioPosition"},"type":"array","title":"Positionen"},"eingabe_modus":{"type":"string","title":"Eingabe Modus"},"waehrung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waehrung"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","positionen","eingabe_modus","waehrung","created_at","updated_at"],"title":"IstPortfolioVorlageResponse"},"IstPortfolioVorlageUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"positionen":{"anyOf":[{"items":{"$ref":"#/components/schemas/IstPortfolioPosition"},"type":"array","minItems":1},{"type":"null"}],"title":"Positionen"},"eingabe_modus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eingabe Modus"},"waehrung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waehrung"}},"type":"object","title":"IstPortfolioVorlageUpdate"},"ItemAendern":{"properties":{"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"benchmark_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Id"}},"type":"object","title":"ItemAendern","description":"PATCH: nur die gesendeten Felder aendern sich (`model_fields_set`).\n\n`benchmark_id` gesendet als `null` heisst „zurueck auf den Standard\" —\nnicht gesendet heisst „so lassen\". Der Unterschied ist der ganze Grund\nfuer PATCH statt PUT."},"ItemAnlegen":{"properties":{"isin":{"type":"string","maxLength":12,"minLength":12,"title":"Isin"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"folder_ids":{"items":{"type":"integer"},"type":"array","title":"Folder Ids"}},"type":"object","required":["isin"],"title":"ItemAnlegen"},"ItemeAnlegen":{"properties":{"isins":{"items":{"type":"string"},"type":"array","maxItems":200,"minItems":1,"title":"Isins"},"folder_ids":{"items":{"type":"integer"},"type":"array","title":"Folder Ids"}},"type":"object","required":["isins"],"title":"ItemeAnlegen","description":"Die Massen-Übernahme aus der Suche.\n\nDie Obergrenze ist keine fachliche Grenze, sondern eine Bremse: die Route\nfragt pro ISIN die Stammdaten ab, und eine unbegrenzte Liste wäre ein\noffener Hebel auf die Datenbank."},"KampagneEingabe":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"plattform":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Plattform"},"ziel_je_reg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ziel Je Reg"},"ziel_je_kunde":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ziel Je Kunde"},"ziel_currency":{"type":"string","maxLength":3,"minLength":3,"title":"Ziel Currency","default":"EUR"},"aktiv":{"type":"boolean","title":"Aktiv","default":true},"notiz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notiz"}},"type":"object","required":["name"],"title":"KampagneEingabe"},"KiRechercheAntwort":{"properties":{"success":{"type":"boolean","title":"Success"},"isin":{"type":"string","title":"Isin"},"grund":{"anyOf":[{"type":"string","enum":["kein_schluessel","api_fehler","keine_textantwort","unvollstaendig","json_unlesbar","ausnahme","zeitueberschreitung"]},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"data":{"anyOf":[{"$ref":"#/components/schemas/KiRechercheDaten"},{"type":"null"}]}},"type":"object","required":["success","isin"],"title":"KiRechercheAntwort","description":"Antwort der KI-Recherche für EIN Papier.\n\n`grund` ist ein Code, kein Satz — übersetzt wird er in der Oberfläche\n(`admin.pflege.ki.grund.<code>`). `detail` ist die technische Angabe\n(HTTP-Status und Antwort, Ausnahmetext) und nur für die Diagnose da."},"KiRechercheDaten":{"properties":{"fund_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fund Name"},"ter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ter"},"sector_count":{"type":"integer","title":"Sector Count"},"country_count":{"type":"integer","title":"Country Count"},"holdings_count":{"type":"integer","title":"Holdings Count"},"data_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source"}},"type":"object","required":["sector_count","country_count","holdings_count"],"title":"KiRechercheDaten"},"KontoLoeschenRequest":{"properties":{"password":{"type":"string","title":"Password","default":""},"confirmation":{"type":"string","minLength":1,"title":"Confirmation"}},"type":"object","required":["confirmation"],"title":"KontoLoeschenRequest"},"KorrelationAntwort":{"properties":{"papiere":{"items":{"$ref":"#/components/schemas/KorrelationPapier"},"type":"array","title":"Papiere"},"fehlend":{"items":{"$ref":"#/components/schemas/KorrelationFehlend"},"type":"array","title":"Fehlend"},"waehrung":{"type":"string","title":"Waehrung"},"von":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Von"},"bis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bis"},"monate":{"type":"integer","title":"Monate"},"mindest_monate":{"type":"integer","title":"Mindest Monate"},"fast_gleich_ab":{"type":"number","title":"Fast Gleich Ab"},"begrenzt_durch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Begrenzt Durch"},"matrix":{"anyOf":[{"items":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array"},"type":"array"},{"type":"null"}],"title":"Matrix"},"grund":{"anyOf":[{"type":"string","enum":["zu_wenig_papiere","zu_kurz"]},{"type":"null"}],"title":"Grund"}},"type":"object","required":["papiere","fehlend","waehrung","von","bis","monate","mindest_monate","fast_gleich_ab","begrenzt_durch","matrix","grund"],"title":"KorrelationAntwort","description":"Die Korrelation der Monatsrenditen im gemeinsamen Fenster\n(`services/watchlist_korrelation.py`)."},"KorrelationFehlend":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"grund":{"type":"string","enum":["keine_kurse","ausschuettung_nicht_umrechenbar"],"title":"Grund"}},"type":"object","required":["isin","name","grund"],"title":"KorrelationFehlend"},"KorrelationPapier":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"von":{"type":"string","title":"Von"},"bis":{"type":"string","title":"Bis"}},"type":"object","required":["isin","name","von","bis"],"title":"KorrelationPapier"},"KostenEingabe":{"properties":{"kampagne":{"type":"string","maxLength":200,"minLength":1,"title":"Kampagne"},"von":{"type":"string","format":"date","title":"Von"},"bis":{"type":"string","format":"date","title":"Bis"},"betrag":{"type":"number","exclusiveMinimum":0.0,"title":"Betrag"},"waehrung":{"type":"string","maxLength":3,"minLength":3,"title":"Waehrung","default":"EUR"},"notiz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notiz"}},"type":"object","required":["kampagne","von","bis","betrag"],"title":"KostenEingabe"},"KriseZeile":{"properties":{"kennung":{"type":"string","title":"Kennung"},"von":{"type":"string","title":"Von"},"bis":{"type":"string","title":"Bis"},"dabei":{"type":"boolean","title":"Dabei"},"rueckgang":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rueckgang"},"erholung_tage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Erholung Tage"},"index_rueckgang":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Index Rueckgang"},"index_erholung_tage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index Erholung Tage"}},"type":"object","required":["kennung","von","bis","dabei","rueckgang","erholung_tage","index_rueckgang","index_erholung_tage"],"title":"KriseZeile"},"KrisenAntwort":{"properties":{"isin":{"type":"string","title":"Isin"},"waehrung":{"type":"string","title":"Waehrung"},"kurse_ab":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kurse Ab"},"benchmark_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Id"},"benchmark_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benchmark Name"},"krisen":{"items":{"$ref":"#/components/schemas/KriseZeile"},"type":"array","title":"Krisen"},"grund":{"anyOf":[{"type":"string","enum":["keine_kurse","ausschuettung_nicht_umrechenbar"]},{"type":"null"}],"title":"Grund"}},"type":"object","required":["isin","waehrung","kurse_ab","benchmark_id","krisen","grund"],"title":"KrisenAntwort","description":"Verhalten eines Wertpapiers in den Krisen des Monte-Carlo-Katalogs\n(`services/watchlist_krisen.py`)."},"KursbeginnPapier":{"properties":{"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"art":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Art"},"benchmark_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Id"},"erster_kurs":{"type":"string","format":"date","title":"Erster Kurs"},"auflage":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Auflage"},"aeltere_kurse":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Aeltere Kurse"}},"type":"object","required":["erster_kurs"],"title":"KursbeginnPapier"},"KursbeginnResponse":{"properties":{"start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"},"ende":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Ende"},"fruehester_start":{"type":"string","format":"date","title":"Fruehester Start"},"frueher_moeglich":{"type":"boolean","title":"Frueher Moeglich","default":false},"papiere":{"items":{"$ref":"#/components/schemas/KursbeginnPapier"},"type":"array","title":"Papiere"}},"type":"object","required":["fruehester_start","papiere"],"title":"KursbeginnResponse","description":"Ab wann jedes Papier Kurse hat (`favorit_rechner.kursbeginn`), das jüngste zuerst."},"KursreihenWartungRequest":{"properties":{"isins":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Isins"},"dry_run":{"type":"boolean","title":"Dry Run","default":true},"max_funds":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Max Funds","default":50}},"type":"object","title":"KursreihenWartungRequest"},"LanguageCreate":{"properties":{"code":{"type":"string","title":"Code"},"name_native":{"type":"string","title":"Name Native"},"name_german":{"type":"string","title":"Name German"},"url_prefix":{"type":"string","title":"Url Prefix"},"flag_emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flag Emoji"}},"type":"object","required":["code","name_native","name_german","url_prefix"],"title":"LanguageCreate"},"LanguageUpdate":{"properties":{"name_native":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Native"},"name_german":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name German"},"url_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Prefix"},"flag_emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flag Emoji"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"LanguageUpdate"},"LaufGestartetResponse":{"properties":{"kennung":{"type":"string","title":"Kennung"}},"type":"object","required":["kennung"],"title":"LaufGestartetResponse"},"Leitplanken":{"properties":{"aenderung_prozent":{"type":"number","maximum":50.0,"exclusiveMinimum":0.0,"title":"Aenderung Prozent","default":10.0},"schwelle_prozent":{"type":"number","maximum":100.0,"exclusiveMinimum":0.0,"title":"Schwelle Prozent","default":20.0},"untergrenze_prozent":{"type":"number","maximum":100.0,"minimum":10.0,"title":"Untergrenze Prozent","default":75.0}},"additionalProperties":false,"type":"object","title":"Leitplanken","description":"Die Entnahme passt sich schwachen und guten Jahren an — nur Monte Carlo.\n\nEinmal im Jahr wird der Entnahmesatz (was das Depot im nächsten Jahr zahlen\nmuss ÷ Depotwert) mit dem Satz bei Entnahmebeginn verglichen: Liegt er mehr\nals `schwelle_prozent` darüber, sinkt die Entnahme um `aenderung_prozent`;\nliegt er mehr als `schwelle_prozent` darunter, steigt sie um ebenso viel\n(Guyton-Klinger ohne Inflationsregel, Entscheidung 12.10.2026).\n\n`untergrenze_prozent`: tiefer als so viel Prozent des Plans wird nie\ngekürzt — ohne Grenze wäre „hätte gereicht“ fast immer wahr, weil\nendloses Kürzen jedes Depot rettet (gemessen 12.10.2026: 10 von 10\n„gereicht“ bei einer Entnahme auf 21 % des Plans). Gescheitert ist ein\nVerlauf weiter nur bei leerem Depot; „hätte tiefer kürzen müssen“ als\nScheitern zu zählen, ergab 0 € tragbar (Entscheidung 12.10.2026)."},"LimitingSecurity":{"properties":{"security_id":{"type":"integer","title":"Security Id"},"name":{"type":"string","title":"Name"},"date":{"type":"string","format":"date","title":"Date"},"years_without_it":{"type":"number","title":"Years Without It"},"days_cost":{"type":"integer","title":"Days Cost"}},"type":"object","required":["security_id","name","date","years_without_it","days_cost"],"title":"LimitingSecurity","description":"Ein Wertpapier, das den gemeinsamen Zeitraum begrenzt.\n\nAnfang und Ende zu trennen ist der Kern: ein Wertpapier, dessen Kurse erst\n2025 beginnen, ist eine Strukturentscheidung (\"will ich das im Backtest?\"),\neines, dessen Kurse drei Tage hinterherhinken, ist ein Klick auf\nAktualisieren. Beides in einer Liste zu nennen verwischt genau das."},"ListenAktualisierung":{"properties":{"aktualisierung":{"type":"string","enum":["manuell","bei_aufruf","taeglich","woechentlich","monatlich"],"title":"Aktualisierung"}},"type":"object","required":["aktualisierung"],"title":"ListenAktualisierung"},"ListenMail":{"properties":{"mail":{"type":"boolean","title":"Mail"}},"type":"object","required":["mail"],"title":"ListenMail"},"LogListResponse":{"properties":{"logs":{"items":{"$ref":"#/components/schemas/LogResponse"},"type":"array","title":"Logs"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["logs","total","page","page_size","total_pages"],"title":"LogListResponse"},"LogResponse":{"properties":{"id":{"type":"integer","title":"Id"},"level":{"type":"string","title":"Level"},"source":{"type":"string","title":"Source"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"message":{"type":"string","title":"Message"},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"request_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Path"},"request_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Method"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"},"is_resolved":{"type":"boolean","title":"Is Resolved"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"resolved_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved Note"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","level","source","category","message","details","context","user_id","request_path","request_method","ip_address","is_resolved","resolved_at","resolved_note","created_at"],"title":"LogResponse"},"LogStats":{"properties":{"total":{"type":"integer","title":"Total"},"by_level":{"additionalProperties":true,"type":"object","title":"By Level"},"by_source":{"additionalProperties":true,"type":"object","title":"By Source"},"by_category":{"additionalProperties":true,"type":"object","title":"By Category"},"last_24h":{"type":"integer","title":"Last 24H"},"last_7d":{"type":"integer","title":"Last 7D"},"unresolved":{"type":"integer","title":"Unresolved"}},"type":"object","required":["total","by_level","by_source","by_category","last_24h","last_7d","unresolved"],"title":"LogStats"},"LoginAsResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"expires_in":{"type":"integer","title":"Expires In"},"sub_account_id":{"type":"integer","title":"Sub Account Id"},"sub_account_email":{"type":"string","title":"Sub Account Email"},"sub_account_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Account Label"}},"type":"object","required":["access_token","expires_in","sub_account_id","sub_account_email","sub_account_label"],"title":"LoginAsResponse"},"MarketingZeile":{"properties":{"ampel":{"type":"string","enum":["ok","warn","fail"],"title":"Ampel"},"neu_30d":{"type":"integer","title":"Neu 30D"},"mit_quelle":{"type":"integer","title":"Mit Quelle"},"ohne_messung":{"type":"integer","title":"Ohne Messung"},"auszahlungen_offen":{"type":"integer","title":"Auszahlungen Offen"}},"type":"object","required":["ampel","neu_30d","mit_quelle","ohne_messung","auszahlungen_offen"],"title":"MarketingZeile"},"MarktdatenZeile":{"properties":{"ampel":{"type":"string","enum":["ok","warn","fail"],"title":"Ampel"},"kursanbieter":{"type":"boolean","title":"Kursanbieter"},"ki_anreicherung":{"type":"boolean","title":"Ki Anreicherung"},"fonds":{"type":"integer","title":"Fonds"},"mit_stammdaten":{"type":"integer","title":"Mit Stammdaten"},"emittenten_aktiv":{"type":"integer","title":"Emittenten Aktiv"},"kurse_bis":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Kurse Bis"},"kurse_alter_tage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Kurse Alter Tage"},"wechselkurse_bis":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Wechselkurse Bis"},"wechselkurse_alter_tage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wechselkurse Alter Tage"},"veraltete_fonds":{"type":"integer","title":"Veraltete Fonds"},"kurslauf_tag":{"type":"string","format":"date","title":"Kurslauf Tag"},"kurslauf_befund":{"type":"string","enum":["ok","kein_lauf_faellig","nicht_gestartet","unvollstaendig","fehler"],"title":"Kurslauf Befund"},"kurslauf_fehlend":{"type":"integer","title":"Kurslauf Fehlend"},"kurslauf_fehler":{"type":"integer","title":"Kurslauf Fehler"}},"type":"object","required":["ampel","kursanbieter","ki_anreicherung","fonds","mit_stammdaten","emittenten_aktiv","kurse_bis","kurse_alter_tage","wechselkurse_bis","wechselkurse_alter_tage","veraltete_fonds","kurslauf_tag","kurslauf_befund","kurslauf_fehlend","kurslauf_fehler"],"title":"MarktdatenZeile"},"McpAuditEntry":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"auth_method":{"type":"string","title":"Auth Method"},"tool_name":{"type":"string","title":"Tool Name"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"error_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Text"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","auth_method","tool_name","status_code","duration_ms","error_text","created_at"],"title":"McpAuditEntry"},"McpConfigResponse":{"properties":{"support_chat_enabled":{"type":"boolean","title":"Support Chat Enabled"},"support_chat_widget_key_anonymous":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Support Chat Widget Key Anonymous"},"support_chat_widget_key_authenticated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Support Chat Widget Key Authenticated"},"mcp_global_rate_limit":{"type":"integer","title":"Mcp Global Rate Limit"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Username"},"updated_by_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Email"}},"type":"object","required":["support_chat_enabled","mcp_global_rate_limit"],"title":"McpConfigResponse"},"McpConfigUpdateRequest":{"properties":{"support_chat_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Support Chat Enabled"},"support_chat_widget_key_anonymous":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Support Chat Widget Key Anonymous"},"support_chat_widget_key_authenticated":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Support Chat Widget Key Authenticated"},"mcp_global_rate_limit":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Mcp Global Rate Limit"}},"type":"object","title":"McpConfigUpdateRequest"},"McpStatsResponse":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"active_keys":{"type":"integer","title":"Active Keys"},"distinct_users":{"type":"integer","title":"Distinct Users"},"total_calls":{"type":"integer","title":"Total Calls"},"error_count":{"type":"integer","title":"Error Count"},"avg_duration_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Ms"},"top_tools":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Top Tools"}},"type":"object","required":["period_days","active_keys","distinct_users","total_calls","error_count","avg_duration_ms","top_tools"],"title":"McpStatsResponse"},"MemberResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"role":{"type":"string","title":"Role"},"invited_at":{"type":"string","format":"date-time","title":"Invited At"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["id","user_id","email","role","invited_at","accepted_at"],"title":"MemberResponse"},"MerkBilanz":{"properties":{"added":{"items":{"type":"string"},"type":"array","title":"Added"},"already_present":{"items":{"type":"string"},"type":"array","title":"Already Present"},"importing":{"items":{"type":"string"},"type":"array","title":"Importing"},"unknown":{"items":{"type":"string"},"type":"array","title":"Unknown"},"full":{"items":{"type":"string"},"type":"array","title":"Full"}},"type":"object","required":["added","already_present","importing","unknown","full"],"title":"MerkBilanz","description":"Was die ISIN-Liste mit jeder eingereichten ISIN gemacht hat.\n\nJede ISIN steht in genau einer Liste. `importing` sind die, die es bei uns\nnoch nicht gab: Sie holt ein Hintergrundlauf (`GET /items/bulk/status`).\n`unknown` sind nur noch Einträge, die gar keine ISIN sind. `full` sind die,\nfür die die Watchlist keinen Platz mehr hatte (`max_watchlist_securities`)."},"MetricLayoutUpdate":{"properties":{"view":{"type":"string","title":"View"},"order":{"items":{"type":"string"},"type":"array","maxItems":60,"title":"Order"}},"type":"object","required":["view","order"],"title":"MetricLayoutUpdate"},"Mischung":{"properties":{"bausteine":{"items":{"$ref":"#/components/schemas/MischungBaustein"},"type":"array","maxItems":30,"minItems":1,"title":"Bausteine"},"rebalancing":{"type":"string","enum":["jaehrlich","nie"],"title":"Rebalancing","default":"jaehrlich"},"datensatz_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Datensatz Id"}},"type":"object","required":["bausteine"],"title":"Mischung","description":"Bausteine mit Anteilen (Summe 100 %) und wie zurueckgewichtet wird."},"MischungBaustein":{"properties":{"art":{"type":"string","enum":["reihe","geldmarkt","festzins","wertpapier"],"title":"Art"},"benchmark_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Id"},"zins":{"anyOf":[{"type":"number","maximum":20.0,"minimum":-5.0},{"type":"null"}],"title":"Zins"},"security_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Security Id"},"isin":{"anyOf":[{"type":"string","maxLength":12},{"type":"null"}],"title":"Isin"},"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"anteil":{"type":"number","maximum":100.0,"exclusiveMinimum":0.0,"title":"Anteil"}},"type":"object","required":["art","anteil"],"title":"MischungBaustein","description":"Ein Baustein einer Monte-Carlo-Mischung: eine Indexreihe, der\nGeldmarktzins, ein fester Zins (Festgeld, Garantiezins) oder ein Wertpapier\n— über seine ISIN aus den gemerkten Wertpapieren der Person (seit\n04.10.2026, die Oberfläche wählt aus deren Ordnern) oder über `security_id`\naus dem Datensatz der Mischung (`Mischung.datensatz_id`)."},"MissingKeyItem":{"properties":{"key":{"type":"string","title":"Key"},"default_text":{"type":"string","title":"Default Text"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","required":["key","default_text"],"title":"MissingKeyItem"},"MissingKeysReport":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/MissingKeyItem"},"type":"array","title":"Keys"}},"type":"object","required":["keys"],"title":"MissingKeysReport"},"MonteCarloAnnahmen":{"properties":{"horizont_jahre":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Horizont Jahre","default":30},"startkapital":{"anyOf":[{"type":"number","maximum":10000000000.0,"minimum":0.0},{"type":"null"}],"title":"Startkapital"},"entnahme":{"anyOf":[{"$ref":"#/components/schemas/EntnahmeEinstellungen"},{"type":"null"}]},"ansparen":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloAnsparen"},{"type":"null"}]},"block_monate":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Block Monate","default":12},"rechenweg":{"type":"string","enum":["gezogen","startjahre"],"title":"Rechenweg","default":"gezogen"},"block_zufaellig":{"type":"boolean","title":"Block Zufaellig","default":false},"rendite_art":{"type":"string","enum":["historisch","vorsichtig"],"title":"Rendite Art","default":"historisch"},"rendite_ziel_pro_jahr":{"anyOf":[{"type":"number","maximum":30.0,"minimum":-10.0},{"type":"null"}],"title":"Rendite Ziel Pro Jahr"},"einkuenfte":{"items":{"$ref":"#/components/schemas/Einkunft"},"type":"array","maxItems":10,"title":"Einkuenfte"},"ereignisse":{"items":{"$ref":"#/components/schemas/Einmalbetrag"},"type":"array","maxItems":10,"title":"Ereignisse"},"inflation_pro_jahr":{"type":"number","maximum":20.0,"minimum":-5.0,"title":"Inflation Pro Jahr","default":2.0},"inflation_art":{"type":"string","enum":["historisch","fest"],"title":"Inflation Art","default":"historisch"},"kosten_pro_jahr":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Kosten Pro Jahr","default":0.0},"alter_heute":{"anyOf":[{"type":"integer","maximum":110.0,"minimum":0.0},{"type":"null"}],"title":"Alter Heute"},"steuer":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloSteuer"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"MonteCarloAnnahmen","description":"Die Annahmen eines Monte-Carlo-Laufs OHNE Grundlage — gespeichert unter\neinem Namen (`MonteCarloEinstellung`), damit dieselben Annahmen auf\nverschiedenen Portfolios und Aufteilungen gerechnet werden können.\n\nDieselben Felder und Prüfungen wie die drei Start-Schemas, ohne das, was zur\nGrundlage gehört (Aufteilung, „Krisenjahre ergänzen“, Krisenfilter). Beträge in EUR, wie in\n`MonteCarloLauf.eingaben`; die Oberfläche liest sie mit `annahmenAusEingaben`."},"MonteCarloAnsparen":{"properties":{"jahre":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Jahre"},"betrag":{"type":"number","maximum":10000000.0,"minimum":0.0,"title":"Betrag"},"takt":{"type":"string","enum":["monthly","quarterly","semiannual","annual"],"title":"Takt","default":"monthly"},"dynamik_pro_jahr":{"type":"number","maximum":20.0,"minimum":0.0,"title":"Dynamik Pro Jahr","default":0.0},"zielvermoegen":{"anyOf":[{"type":"number","maximum":10000000000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Zielvermoegen"},"kauf":{"type":"string","enum":["ziel","untergewichtet"],"title":"Kauf","default":"ziel"},"gebuehr_fix":{"anyOf":[{"type":"number","maximum":1000.0,"minimum":0.0},{"type":"null"}],"title":"Gebuehr Fix"},"gebuehr_prozent":{"anyOf":[{"type":"number","maximum":20.0,"minimum":0.0},{"type":"null"}],"title":"Gebuehr Prozent"},"zulage":{"anyOf":[{"$ref":"#/components/schemas/AvDepotZulage"},{"type":"null"}]},"pausen":{"items":{"$ref":"#/components/schemas/Sparpause"},"type":"array","maxItems":5,"title":"Pausen"}},"type":"object","required":["jahre","betrag"],"title":"MonteCarloAnsparen","description":"Die Zeit bis zur Entnahme in Monte Carlo — mit oder ohne Sparrate.\n\nWie `AnsparEinstellungen`, nur darf `betrag` 0 sein: Dann ist es eine\nWartezeit, in der das Vermögen angelegt bleibt und nichts dazukommt („Ab 67\nentnehmen, bis dahin nicht mehr sparen“). Der Backtest kennt das nicht — dort\nhiesse eine Rate von 0 eine Ordergebühr auf nichts."},"MonteCarloAufteilungOrdnerCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"MonteCarloAufteilungOrdnerCreate"},"MonteCarloAufteilungOrdnerResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","created_at"],"title":"MonteCarloAufteilungOrdnerResponse"},"MonteCarloAufteilungOrdnerUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"}},"type":"object","title":"MonteCarloAufteilungOrdnerUpdate","description":"Nur die gesendeten Felder werden geändert (`model_fields_set`)."},"MonteCarloAufteilungVerweisCreate":{"properties":{"art":{"type":"string","enum":["portfolio","community"],"title":"Art"},"favorite_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorite Id"},"community_eintrag_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Community Eintrag Id"},"ordner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ordner Id"}},"additionalProperties":false,"type":"object","required":["art"],"title":"MonteCarloAufteilungVerweisCreate","description":"Ein Backtest-Portfolio oder einen Community-Eintrag als Aufteilung merken."},"MonteCarloBaustein":{"properties":{"art":{"type":"string","enum":["reihe","geldmarkt","festzins"],"title":"Art"},"benchmark_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Id"},"name":{"type":"string","title":"Name"},"anlageklasse":{"type":"string","enum":["aktien","anleihen","gold","geldmarkt","zins"],"title":"Anlageklasse"},"von":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Von"},"bis":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Bis"},"riskant":{"type":"boolean","title":"Riskant"},"aus_renditen":{"type":"boolean","title":"Aus Renditen","default":false},"laufzeit_jahre":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Laufzeit Jahre"},"rekonstruiert":{"type":"boolean","title":"Rekonstruiert","default":false},"lange_reihe":{"anyOf":[{"type":"string","enum":["de_aktien","de_aktien_1871","us_aktien","us_aktien_1871","welt_aktien_1871_us30","welt_aktien_1871_us50","welt_aktien_1871_us70","welt_aktien_1871_us100","welt_aktien_1871_hist","us_anleihen","de_anleihen","bund_10_1956","gold"]},{"type":"null"}],"title":"Lange Reihe"},"bedeutung":{"anyOf":[{"type":"string","enum":["aktien_welt","aktien_welt_alle","aktien_schwellen","aktien_usa","aktien_usa_tech","aktien_eurozone","aktien_europa","aktien_uk","aktien_de","anleihen_de","anleihen_usa","anleihen_eurozone","anleihen_eurozone_kurz","gold","geldmarkt","festzins"]},{"type":"null"}],"title":"Bedeutung"},"in_auswahl":{"type":"boolean","title":"In Auswahl","default":true}},"type":"object","required":["art","name","anlageklasse","riskant"],"title":"MonteCarloBaustein","description":"Was sich in eine Mischung legen laesst — mit dem Zeitraum seiner Daten\n(beim festen Zins keiner: er gilt jeden Monat)."},"MonteCarloCommunitySeite":{"properties":{"eintraege":{"items":{"$ref":"#/components/schemas/MonteCarloCommunityWahl"},"type":"array","title":"Eintraege"},"gesamt":{"type":"integer","title":"Gesamt"},"gewaehlt":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloCommunityWahl"},{"type":"null"}]}},"type":"object","required":["eintraege","gesamt"],"title":"MonteCarloCommunitySeite","description":"Eine Seite der Suche in den Community-Portfolios. `gewaehlt` ist der\nEintrag aus `auswahl` — auch wenn er nicht auf dieser Seite steht."},"MonteCarloCommunityStart":{"properties":{"horizont_jahre":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Horizont Jahre","default":30},"startkapital":{"type":"number","maximum":10000000000.0,"minimum":0.0,"title":"Startkapital"},"entnahme":{"anyOf":[{"$ref":"#/components/schemas/EntnahmeEinstellungen"},{"type":"null"}]},"ansparen":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloAnsparen"},{"type":"null"}]},"block_monate":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Block Monate","default":12},"rechenweg":{"type":"string","enum":["gezogen","startjahre"],"title":"Rechenweg","default":"gezogen"},"block_zufaellig":{"type":"boolean","title":"Block Zufaellig","default":false},"rendite_art":{"type":"string","enum":["historisch","vorsichtig"],"title":"Rendite Art","default":"historisch"},"rendite_ziel_pro_jahr":{"anyOf":[{"type":"number","maximum":30.0,"minimum":-10.0},{"type":"null"}],"title":"Rendite Ziel Pro Jahr"},"einkuenfte":{"items":{"$ref":"#/components/schemas/Einkunft"},"type":"array","maxItems":10,"title":"Einkuenfte"},"ereignisse":{"items":{"$ref":"#/components/schemas/Einmalbetrag"},"type":"array","maxItems":10,"title":"Ereignisse"},"inflation_pro_jahr":{"type":"number","maximum":20.0,"minimum":-5.0,"title":"Inflation Pro Jahr","default":2.0},"inflation_art":{"type":"string","enum":["historisch","fest"],"title":"Inflation Art","default":"historisch"},"kosten_pro_jahr":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Kosten Pro Jahr","default":0.0},"alter_heute":{"anyOf":[{"type":"integer","maximum":110.0,"minimum":0.0},{"type":"null"}],"title":"Alter Heute"},"steuer":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloSteuer"},{"type":"null"}]},"krisen_ergaenzen":{"type":"boolean","title":"Krisen Ergaenzen","default":false},"rein_synthetisch":{"type":"boolean","title":"Rein Synthetisch","default":false},"ab_krise":{"anyOf":[{"type":"string","enum":["gruenderkrach","panik_1907","weltkrieg_inflation","nachkriegskrise","weltwirtschaftskrise","rezession_1937","waehrungsreform","oelkrise","inflation_1970er","crash_1987","dotcom","finanzkrise","eurokrise","corona","zinswende"]},{"type":"null"}],"title":"Ab Krise"}},"type":"object","required":["startkapital"],"title":"MonteCarloCommunityStart","description":"Ein Monte-Carlo-Lauf auf einem Portfolio aus den Community-Backtests.\nDie Einstellungen des Besitzers gelten nicht — Startkapital, Sparplan und\nEntnahme bringt der Betrachter mit."},"MonteCarloCommunityWahl":{"properties":{"id":{"type":"integer","title":"Id"},"distribution":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution"},"rebalancing":{"type":"string","title":"Rebalancing"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"sharpe_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sharpe Ratio"},"cagr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cagr"}},"type":"object","required":["id","distribution","rebalancing","start_date","end_date"],"title":"MonteCarloCommunityWahl","description":"Ein Portfolio aus den Community-Backtests in der Auswahl der\nMonte-Carlo-Seite. `display_name` ist `None` bei anonymer Anzeige."},"MonteCarloEinstellungCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"annahmen":{"$ref":"#/components/schemas/MonteCarloAnnahmen"}},"type":"object","required":["name","annahmen"],"title":"MonteCarloEinstellungCreate"},"MonteCarloEinstellungResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"annahmen":{"$ref":"#/components/schemas/MonteCarloAnnahmen"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","annahmen","created_at","updated_at"],"title":"MonteCarloEinstellungResponse"},"MonteCarloEinstellungUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"annahmen":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloAnnahmen"},{"type":"null"}]}},"type":"object","title":"MonteCarloEinstellungUpdate","description":"Nur die gesendeten Felder werden geändert (`model_fields_set`)."},"MonteCarloErgebnisSeite":{"properties":{"eintraege":{"items":{"$ref":"#/components/schemas/MonteCarloLaufResponse"},"type":"array","title":"Eintraege"},"gesamt":{"type":"integer","title":"Gesamt"},"seite":{"type":"integer","title":"Seite"},"pro_seite":{"type":"integer","title":"Pro Seite"}},"type":"object","required":["eintraege","gesamt","seite","pro_seite"],"title":"MonteCarloErgebnisSeite","description":"Eine Seite der Ergebnisliste — fertige Läufe, neueste zuerst. Das Ergebnis\nkommt OHNE Fächer und Jahresverläufe (`monte_carlo.ergebnis_kurz`)."},"MonteCarloFavoritCreate":{"properties":{"ordner_id":{"type":"integer","title":"Ordner Id"},"lauf_id":{"type":"integer","title":"Lauf Id"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"}},"type":"object","required":["ordner_id","lauf_id","name"],"title":"MonteCarloFavoritCreate","description":"Einen fertigen Lauf in einen Ordner speichern."},"MonteCarloFavoritResponse":{"properties":{"id":{"type":"integer","title":"Id"},"ordner_id":{"type":"integer","title":"Ordner Id"},"name":{"type":"string","title":"Name"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"quelle":{"type":"string","enum":["portfolio","mischung","community"],"title":"Quelle"},"favorite_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorite Id"},"lauf_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lauf Id"},"grundlage_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grundlage Name"},"grundlage_verteilung":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Grundlage Verteilung"},"eingaben":{"additionalProperties":true,"type":"object","title":"Eingaben"},"ergebnis":{"additionalProperties":true,"type":"object","title":"Ergebnis"},"gerechnet_am":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Gerechnet Am"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"veraltet":{"type":"boolean","title":"Veraltet","default":false},"bereits_gespeichert":{"type":"boolean","title":"Bereits Gespeichert","default":false},"jahresbericht":{"type":"boolean","title":"Jahresbericht","default":false},"jahresbericht_naechster":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Jahresbericht Naechster"}},"type":"object","required":["id","ordner_id","name","quelle","eingaben","ergebnis","created_at"],"title":"MonteCarloFavoritResponse"},"MonteCarloFavoritUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"note":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Note"},"ordner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ordner Id"},"jahresbericht":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Jahresbericht"}},"type":"object","title":"MonteCarloFavoritUpdate","description":"Nur die gesendeten Felder werden geändert; `note: null` löscht die Notiz."},"MonteCarloFortschritt":{"properties":{"phase":{"type":"string","enum":["grundlage","verlaeufe","tragbar","ohne_puffer","ohne_leitplanken","sparrate","stresstests","einmalig","vergleich","standarddepot"],"title":"Phase"},"percent":{"type":"number","title":"Percent"},"elapsed_seconds":{"type":"number","title":"Elapsed Seconds"},"eta_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eta Seconds"}},"type":"object","required":["phase","percent","elapsed_seconds"],"title":"MonteCarloFortschritt","description":"Wo ein laufender Lauf steht (`services/mc_fortschritt.py`) — Codes und Zahlen, kein Satz."},"MonteCarloFreigabeCreate":{"properties":{"zusammensetzung":{"anyOf":[{"additionalProperties":{"type":"number","maximum":100.0,"minimum":0.0},"propertyNames":{"maxLength":255,"minLength":1},"type":"object","maxProperties":60},{"type":"null"}],"title":"Zusammensetzung"}},"additionalProperties":false,"type":"object","title":"MonteCarloFreigabeCreate","description":"Bei Mischung und Community-Portfolio die Bausteine mit ihren Namen, wie\ndie Seite sie zeigt (Name → Anteil in %). Beim Portfolio ignoriert — dort\ngilt seine gespeicherte Zusammensetzung."},"MonteCarloFreigabeResponse":{"properties":{"token":{"type":"string","title":"Token"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["token","created_at"],"title":"MonteCarloFreigabeResponse","description":"Der Link zu einem geteilten Lauf (`routers/monte_carlo_freigabe.py`)."},"MonteCarloGeschichte":{"properties":{"von":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Von"},"bis":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Bis"},"monate":{"type":"integer","title":"Monate"},"warnung_unter_monaten":{"type":"integer","title":"Warnung Unter Monaten"},"mindest_monate":{"type":"integer","title":"Mindest Monate"},"kursbeginn":{"anyOf":[{"$ref":"#/components/schemas/KursbeginnResponse"},{"type":"null"}]},"ergaenzbar":{"type":"boolean","title":"Ergaenzbar"},"grund":{"anyOf":[{"type":"string","enum":["ergaenzung_zu_kurz","ergaenzung_keine_reihe"]},{"type":"null"}],"title":"Grund"},"ueberlappung_mindest":{"type":"integer","title":"Ueberlappung Mindest"},"bestimmtheit_mindest":{"type":"number","title":"Bestimmtheit Mindest"},"reihen":{"items":{"$ref":"#/components/schemas/MonteCarloLangeReihe"},"type":"array","title":"Reihen"},"krisen":{"items":{"$ref":"#/components/schemas/MonteCarloKriseImZeitraum"},"type":"array","title":"Krisen","default":[]},"inflation_ab":{"type":"string","format":"date","title":"Inflation Ab"},"ab_krise":{"anyOf":[{"type":"string","enum":["gruenderkrach","panik_1907","weltkrieg_inflation","nachkriegskrise","weltwirtschaftskrise","rezession_1937","waehrungsreform","oelkrise","inflation_1970er","crash_1987","dotcom","finanzkrise","eurokrise","corona","zinswende"]},{"type":"null"}],"title":"Ab Krise"},"echt_von":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Echt Von"}},"type":"object","required":["monate","warnung_unter_monaten","mindest_monate","ergaenzbar","ueberlappung_mindest","bestimmtheit_mindest","reihen","inflation_ab"],"title":"MonteCarloGeschichte","description":"Wie lang die echte Kursgeschichte einer Grundlage ist — und ob sie sich um\nKrisenjahre ergänzen liesse (`mc_rueckrechnung.vorschau`). Vor dem Start."},"MonteCarloGeschichteAnfrage":{"properties":{"quelle":{"type":"string","enum":["portfolio","community","mischung"],"title":"Quelle"},"favorite_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorite Id"},"community_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Community Id"},"mischung":{"anyOf":[{"$ref":"#/components/schemas/Mischung"},{"type":"null"}]},"ab_krise":{"anyOf":[{"type":"string","enum":["gruenderkrach","panik_1907","weltkrieg_inflation","nachkriegskrise","weltwirtschaftskrise","rezession_1937","waehrungsreform","oelkrise","inflation_1970er","crash_1987","dotcom","finanzkrise","eurokrise","corona","zinswende"]},{"type":"null"}],"title":"Ab Krise"},"rechenweg":{"type":"string","enum":["gezogen","startjahre"],"title":"Rechenweg","default":"gezogen"}},"type":"object","required":["quelle"],"title":"MonteCarloGeschichteAnfrage","description":"Welche Grundlage vor dem Start geprüft wird — genau eine der drei."},"MonteCarloGleitpfad":{"properties":{"jahre_vor_rente":{"type":"integer","maximum":40.0,"minimum":1.0,"title":"Jahre Vor Rente","default":15},"riskant_ziel_prozent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Riskant Ziel Prozent","default":30}},"additionalProperties":false,"type":"object","title":"MonteCarloGleitpfad","description":"Ablaufmanagement (A1b, `mc_gleitpfad`): In den letzten `jahre_vor_rente`\nJahren vor Rentenbeginn sinkt der Anteil der riskanteren Bausteine (Aktien,\nGold, Wertpapiere ab SRI 3) gleichmässig auf `riskant_ziel_prozent` und\nbleibt danach dort. Nur mit Ansparphase. Die Vorgaben sind die des\nStandarddepots (`av_depot.GLEITPFAD_JAHRE_VOR_RENTE`,\n`STANDARDDEPOT_RISIKO_VOR_RENTE_HOECHSTENS`) — ohne Import, wie überall in\ndieser Datei; `test_mc_gleitpfad_lauf` hält sie gleich."},"MonteCarloKriseImZeitraum":{"properties":{"kennung":{"type":"string","enum":["gruenderkrach","panik_1907","weltkrieg_inflation","nachkriegskrise","weltwirtschaftskrise","rezession_1937","waehrungsreform","oelkrise","inflation_1970er","crash_1987","dotcom","finanzkrise","eurokrise","corona","zinswende"],"title":"Kennung"},"von":{"type":"string","format":"date","title":"Von"},"bis":{"type":"string","format":"date","title":"Bis"},"enthalten":{"type":"boolean","title":"Enthalten"},"mit_ergaenzung":{"type":"boolean","title":"Mit Ergaenzung","default":false}},"type":"object","required":["kennung","von","bis","enthalten"],"title":"MonteCarloKriseImZeitraum","description":"Eine Krise des Katalogs (`mc_krisen.KATALOG`) — liegt ihr ganzes Fenster in\nder Grundlage, und läge es mit ergänzten Krisenjahren darin?"},"MonteCarloLangeReihe":{"properties":{"benchmark_id":{"type":"integer","title":"Benchmark Id"},"name":{"type":"string","title":"Name"},"anlageklasse":{"type":"string","enum":["aktien","anleihen"],"title":"Anlageklasse"},"von":{"type":"string","format":"date","title":"Von"},"aus_renditen":{"type":"boolean","title":"Aus Renditen","default":false},"laufzeit_jahre":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Laufzeit Jahre"},"rekonstruiert":{"type":"boolean","title":"Rekonstruiert","default":false},"lange_reihe":{"anyOf":[{"type":"string","enum":["de_aktien","de_aktien_1871","us_aktien","us_aktien_1871","welt_aktien_1871_us30","welt_aktien_1871_us50","welt_aktien_1871_us70","welt_aktien_1871_us100","welt_aktien_1871_hist","us_anleihen","de_anleihen","bund_10_1956","gold"]},{"type":"null"}],"title":"Lange Reihe"}},"type":"object","required":["benchmark_id","name","anlageklasse","von"],"title":"MonteCarloLangeReihe","description":"Eine lange Reihe, aus der kurze Geschichten zurückgerechnet werden dürfen."},"MonteCarloLaufResponse":{"properties":{"id":{"type":"integer","title":"Id"},"quelle":{"type":"string","enum":["portfolio","mischung","community"],"title":"Quelle","default":"portfolio"},"favorite_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorite Id"},"status":{"type":"string","enum":["laeuft","fertig","fehler"],"title":"Status"},"grund":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grund"},"eingaben":{"additionalProperties":true,"type":"object","title":"Eingaben"},"ergebnis":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ergebnis"},"kursbeginn":{"anyOf":[{"$ref":"#/components/schemas/KursbeginnResponse"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"fertig_am":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fertig Am"},"veraltet":{"type":"boolean","title":"Veraltet","default":false},"fortschritt":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloFortschritt"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"grundlage_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grundlage Name"},"grundlage_verteilung":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Grundlage Verteilung"}},"type":"object","required":["id","status","eingaben","created_at"],"title":"MonteCarloLaufResponse"},"MonteCarloLaufUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"}},"additionalProperties":false,"type":"object","title":"MonteCarloLaufUpdate","description":"Einen Lauf umbenennen; ein leerer Name gibt ihm den Namen seiner Grundlage zurück."},"MonteCarloMischungStart":{"properties":{"mischung":{"$ref":"#/components/schemas/Mischung"},"horizont_jahre":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Horizont Jahre","default":30},"startkapital":{"type":"number","maximum":10000000000.0,"minimum":0.0,"title":"Startkapital"},"entnahme":{"anyOf":[{"$ref":"#/components/schemas/EntnahmeEinstellungen"},{"type":"null"}]},"ansparen":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloAnsparen"},{"type":"null"}]},"block_monate":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Block Monate","default":12},"rechenweg":{"type":"string","enum":["gezogen","startjahre"],"title":"Rechenweg","default":"gezogen"},"block_zufaellig":{"type":"boolean","title":"Block Zufaellig","default":false},"rendite_art":{"type":"string","enum":["historisch","vorsichtig"],"title":"Rendite Art","default":"historisch"},"rendite_ziel_pro_jahr":{"anyOf":[{"type":"number","maximum":30.0,"minimum":-10.0},{"type":"null"}],"title":"Rendite Ziel Pro Jahr"},"einkuenfte":{"items":{"$ref":"#/components/schemas/Einkunft"},"type":"array","maxItems":10,"title":"Einkuenfte"},"ereignisse":{"items":{"$ref":"#/components/schemas/Einmalbetrag"},"type":"array","maxItems":10,"title":"Ereignisse"},"inflation_pro_jahr":{"type":"number","maximum":20.0,"minimum":-5.0,"title":"Inflation Pro Jahr","default":2.0},"inflation_art":{"type":"string","enum":["historisch","fest"],"title":"Inflation Art","default":"historisch"},"kosten_pro_jahr":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Kosten Pro Jahr","default":0.0},"alter_heute":{"anyOf":[{"type":"integer","maximum":110.0,"minimum":0.0},{"type":"null"}],"title":"Alter Heute"},"steuer":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloSteuer"},{"type":"null"}]},"krisen_ergaenzen":{"type":"boolean","title":"Krisen Ergaenzen","default":false},"rein_synthetisch":{"type":"boolean","title":"Rein Synthetisch","default":false},"ab_krise":{"anyOf":[{"type":"string","enum":["gruenderkrach","panik_1907","weltkrieg_inflation","nachkriegskrise","weltwirtschaftskrise","rezession_1937","waehrungsreform","oelkrise","inflation_1970er","crash_1987","dotcom","finanzkrise","eurokrise","corona","zinswende"]},{"type":"null"}],"title":"Ab Krise"},"gleitpfad":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloGleitpfad"},{"type":"null"}]}},"type":"object","required":["mischung","startkapital"],"title":"MonteCarloMischungStart","description":"Ein Monte-Carlo-Lauf auf einer Mischung — ohne Portfolio, also mit Startkapital."},"MonteCarloMischungVorlageCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"mischung":{"$ref":"#/components/schemas/Mischung"},"ordner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ordner Id"}},"type":"object","required":["name","mischung"],"title":"MonteCarloMischungVorlageCreate"},"MonteCarloMischungVorlageResponse":{"properties":{"id":{"type":"integer","title":"Id"},"art":{"type":"string","enum":["eigene","portfolio","community"],"title":"Art"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"kennung":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kennung"},"mischung":{"anyOf":[{"$ref":"#/components/schemas/Mischung"},{"type":"null"}]},"ordner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ordner Id"},"favorite_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorite Id"},"community_eintrag_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Community Eintrag Id"},"portfolio":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloPortfolioWahl"},{"type":"null"}]},"community":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloCommunityWahl"},{"type":"null"}]},"verfuegbar":{"type":"boolean","title":"Verfuegbar","default":true},"in_auswahl":{"type":"boolean","title":"In Auswahl","default":true},"zeitraum_von":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Zeitraum Von"},"zeitraum_bis":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Zeitraum Bis"},"krisen":{"anyOf":[{"items":{"$ref":"#/components/schemas/MonteCarloKriseImZeitraum"},"type":"array"},{"type":"null"}],"title":"Krisen"},"ergaenzbar_ab":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Ergaenzbar Ab"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","art","created_at","updated_at"],"title":"MonteCarloMischungVorlageResponse","description":"Eine Aufteilung (`docs/KONZEPT_MC_AUFTEILUNGEN.md`) — eigene\nZusammenstellung (`mischung`, `name`) oder Verweis auf ein\nBacktest-Portfolio (`portfolio`) bzw. einen Community-Eintrag\n(`community`), aufgelöst beim Lesen. `verfuegbar` ist `False`, wenn das\nZiel eines Community-Verweises nicht mehr öffentlich ist."},"MonteCarloMischungVorlageUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"mischung":{"anyOf":[{"$ref":"#/components/schemas/Mischung"},{"type":"null"}]},"ordner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ordner Id"}},"type":"object","title":"MonteCarloMischungVorlageUpdate","description":"Nur die gesendeten Felder werden geändert (`model_fields_set`).\nName und Mischung nur bei eigenen Aufteilungen; `ordner_id: null` heisst\n„ohne Ordner“."},"MonteCarloOrdnerCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"MonteCarloOrdnerCreate"},"MonteCarloOrdnerResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"sort_by":{"anyOf":[{"type":"string","enum":["gerechnet_am","name","erfolgsquote","rest_median","rest_schwach","verlust_quote","tragbarer_betrag"]},{"type":"null"}],"title":"Sort By"},"sort_asc":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sort Asc"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"eintraege":{"items":{"$ref":"#/components/schemas/MonteCarloFavoritResponse"},"type":"array","title":"Eintraege","default":[]}},"type":"object","required":["id","name","created_at"],"title":"MonteCarloOrdnerResponse"},"MonteCarloOrdnerUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"sort_by":{"anyOf":[{"type":"string","enum":["gerechnet_am","name","erfolgsquote","rest_median","rest_schwach","verlust_quote","tragbarer_betrag"]},{"type":"null"}],"title":"Sort By"},"sort_asc":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sort Asc"}},"type":"object","title":"MonteCarloOrdnerUpdate","description":"Nur die gesendeten Felder werden geändert (`model_fields_set`)."},"MonteCarloPortfolioWahl":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"liste":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Liste"},"ist_portfolio":{"type":"boolean","title":"Ist Portfolio","default":false},"initial_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Value"},"entnahme":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Entnahme"},"steuer":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Steuer"},"distribution":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Distribution"},"rebalancing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rebalancing"},"cagr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cagr"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["id","name"],"title":"MonteCarloPortfolioWahl","description":"Ein gespeichertes Portfolio in der Auswahl der Monte-Carlo-Seite — nur,\nwas die Seite zum Vorbelegen braucht (Startkapital und Plan in EUR)."},"MonteCarloStart":{"properties":{"horizont_jahre":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Horizont Jahre","default":30},"startkapital":{"anyOf":[{"type":"number","maximum":10000000000.0,"minimum":0.0},{"type":"null"}],"title":"Startkapital"},"entnahme":{"anyOf":[{"$ref":"#/components/schemas/EntnahmeEinstellungen"},{"type":"null"}]},"ansparen":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloAnsparen"},{"type":"null"}]},"block_monate":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Block Monate","default":12},"rechenweg":{"type":"string","enum":["gezogen","startjahre"],"title":"Rechenweg","default":"gezogen"},"block_zufaellig":{"type":"boolean","title":"Block Zufaellig","default":false},"rendite_art":{"type":"string","enum":["historisch","vorsichtig"],"title":"Rendite Art","default":"historisch"},"rendite_ziel_pro_jahr":{"anyOf":[{"type":"number","maximum":30.0,"minimum":-10.0},{"type":"null"}],"title":"Rendite Ziel Pro Jahr"},"einkuenfte":{"items":{"$ref":"#/components/schemas/Einkunft"},"type":"array","maxItems":10,"title":"Einkuenfte"},"ereignisse":{"items":{"$ref":"#/components/schemas/Einmalbetrag"},"type":"array","maxItems":10,"title":"Ereignisse"},"inflation_pro_jahr":{"type":"number","maximum":20.0,"minimum":-5.0,"title":"Inflation Pro Jahr","default":2.0},"inflation_art":{"type":"string","enum":["historisch","fest"],"title":"Inflation Art","default":"historisch"},"kosten_pro_jahr":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Kosten Pro Jahr","default":0.0},"alter_heute":{"anyOf":[{"type":"integer","maximum":110.0,"minimum":0.0},{"type":"null"}],"title":"Alter Heute"},"steuer":{"anyOf":[{"$ref":"#/components/schemas/MonteCarloSteuer"},{"type":"null"}]},"krisen_ergaenzen":{"type":"boolean","title":"Krisen Ergaenzen","default":false},"rein_synthetisch":{"type":"boolean","title":"Rein Synthetisch","default":false},"ab_krise":{"anyOf":[{"type":"string","enum":["gruenderkrach","panik_1907","weltkrieg_inflation","nachkriegskrise","weltwirtschaftskrise","rezession_1937","waehrungsreform","oelkrise","inflation_1970er","crash_1987","dotcom","finanzkrise","eurokrise","corona","zinswende"]},{"type":"null"}],"title":"Ab Krise"}},"type":"object","title":"MonteCarloStart","description":"Ein Monte-Carlo-Lauf auf einem gespeicherten Portfolio."},"MonteCarloSteuer":{"properties":{"tax_rate":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Tax Rate","default":26.375},"tax_country":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Tax Country"},"tax_capital_gains_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tax Capital Gains Rate"},"tax_dividend_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tax Dividend Rate"},"tax_wealth_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tax Wealth Rate"},"tax_long_term_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tax Long Term Rate"},"tax_long_term_holding_years":{"anyOf":[{"type":"number","maximum":50.0,"minimum":0.0},{"type":"null"}],"title":"Tax Long Term Holding Years"},"tax_partial_exemption_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tax Partial Exemption Pct"},"tax_annual_allowance_eur":{"anyOf":[{"type":"number","maximum":10000000.0,"minimum":0.0},{"type":"null"}],"title":"Tax Annual Allowance Eur"},"tax_nl_modus":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Tax Nl Modus"},"tax_vorabpauschale":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tax Vorabpauschale"},"liquidate_at_end":{"type":"boolean","title":"Liquidate At End","default":false},"account_type":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Account Type"},"account_pea_open_date":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Account Pea Open Date"},"account_withdrawal_tax_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Account Withdrawal Tax Rate"}},"additionalProperties":false,"type":"object","title":"MonteCarloSteuer","description":"Die Steuer eines Monte-Carlo-Laufs (Konzept 9.2) — dieselben Felder wie\ndas Backtest-Formular (`mc_steuer.FELDER`), dieselbe Bedeutung: leer heißt\n„Mechanik nicht aktiv“, ohne Land gilt der Pauschalsatz."},"MonteCarloVorschauResponse":{"properties":{"eintrag_id":{"type":"integer","title":"Eintrag Id"},"status":{"type":"string","enum":["laeuft","fertig","fehler"],"title":"Status"},"grund":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grund"},"ergebnis":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ergebnis"},"gerechnet_am":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Gerechnet Am"}},"type":"object","required":["eintrag_id","status"],"title":"MonteCarloVorschauResponse","description":"Die Vorschau eines Community-Eintrags für Gäste (`mc_community.teaser`)\n— `ergebnis` nur bei `fertig`, `grund` nur bei `fehler`."},"MonteCarloWertpapier":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"type":"string","title":"Name"},"von":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Von"},"bis":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Bis"},"riskant":{"type":"boolean","title":"Riskant"}},"type":"object","required":["isin","name","riskant"],"title":"MonteCarloWertpapier","description":"Ein gemerktes Wertpapier in der Auswahl einer Mischung — mit seinem\nDatenfenster (`kursreihe_pruefung.datenfenster`), `None` ohne Kurse."},"MonteCarloWertpapierAuswahl":{"properties":{"ordner":{"items":{"$ref":"#/components/schemas/MonteCarloWertpapierOrdner"},"type":"array","title":"Ordner"},"ohne_ordner":{"items":{"$ref":"#/components/schemas/MonteCarloWertpapier"},"type":"array","title":"Ohne Ordner"}},"type":"object","required":["ordner","ohne_ordner"],"title":"MonteCarloWertpapierAuswahl","description":"Die gemerkten Wertpapiere der Person in ihren Ordnern — dieselben wie auf\nder Seite „Wertpapiere“; `ohne_ordner` ist, was in keinem liegt."},"MonteCarloWertpapierOrdner":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"ist_system":{"type":"boolean","title":"Ist System","default":false},"system_art":{"anyOf":[{"type":"string","enum":["fonds","aktien"]},{"type":"null"}],"title":"System Art"},"geteilt":{"type":"boolean","title":"Geteilt","default":false},"wertpapiere":{"items":{"$ref":"#/components/schemas/MonteCarloWertpapier"},"type":"array","title":"Wertpapiere"}},"type":"object","required":["id","name","wertpapiere"],"title":"MonteCarloWertpapierOrdner"},"MusterportfolioAnnahmen":{"properties":{"startwert":{"type":"number","title":"Startwert"},"startkapital_steuer":{"type":"number","title":"Startkapital Steuer"},"steuersatz":{"type":"number","title":"Steuersatz"},"pauschbetrag":{"type":"number","title":"Pauschbetrag"},"vergleich":{"type":"string","title":"Vergleich"}},"type":"object","required":["startwert","startkapital_steuer","steuersatz","pauschbetrag","vergleich"],"title":"MusterportfolioAnnahmen","description":"Die Annahmen der Rechnung — die Seite nennt sie als Zahlen, nicht als Text."},"MusterportfolioDetail":{"properties":{"kennung":{"type":"string","title":"Kennung"},"teile":{"items":{"$ref":"#/components/schemas/MusterportfolioTeil"},"type":"array","title":"Teile"},"grundlage_von":{"type":"string","format":"date","title":"Grundlage Von"},"grundlage_bis":{"type":"string","format":"date","title":"Grundlage Bis"},"teilfreistellung":{"type":"number","title":"Teilfreistellung"},"zeitraeume":{"items":{"$ref":"#/components/schemas/MusterportfolioZeitraum"},"type":"array","title":"Zeitraeume"},"berechnet_am":{"type":"string","format":"date-time","title":"Berechnet Am"},"kalenderjahre":{"items":{"$ref":"#/components/schemas/MusterportfolioJahr"},"type":"array","title":"Kalenderjahre"},"verlauf":{"items":{"$ref":"#/components/schemas/MusterportfolioPunkt"},"type":"array","title":"Verlauf"}},"type":"object","required":["kennung","teile","grundlage_von","grundlage_bis","teilfreistellung","zeitraeume","berechnet_am","kalenderjahre","verlauf"],"title":"MusterportfolioDetail"},"MusterportfolioJahr":{"properties":{"jahr":{"type":"integer","title":"Jahr"},"rendite":{"type":"number","title":"Rendite"}},"type":"object","required":["jahr","rendite"],"title":"MusterportfolioJahr"},"MusterportfolioKennzahlenZeitraum":{"properties":{"cagr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cagr"},"total_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Return"},"volatility":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volatility"},"max_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Drawdown"},"max_drawdown_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Drawdown Period"},"sharpe_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sharpe Ratio"},"sortino_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sortino Ratio"},"calmar_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Calmar Ratio"},"sterling_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sterling Ratio"},"martin_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Martin Ratio"},"recovery_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recovery Ratio"},"ulcer_index":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ulcer Index"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"years":{"type":"number","title":"Years"}},"type":"object","required":["start_date","end_date","years"],"title":"MusterportfolioKennzahlenZeitraum","description":"Kennzahlen eines Zeitraums vor Steuer (Arena-Standard) — dieselben Felder\nwie der Zeitverlauf der Watchlist (`kennzahlen_der_reihe`)."},"MusterportfolioKurz":{"properties":{"kennung":{"type":"string","title":"Kennung"},"teile":{"items":{"$ref":"#/components/schemas/MusterportfolioTeil"},"type":"array","title":"Teile"},"grundlage_von":{"type":"string","format":"date","title":"Grundlage Von"},"grundlage_bis":{"type":"string","format":"date","title":"Grundlage Bis"},"teilfreistellung":{"type":"number","title":"Teilfreistellung"},"zeitraeume":{"items":{"$ref":"#/components/schemas/MusterportfolioZeitraum"},"type":"array","title":"Zeitraeume"},"berechnet_am":{"type":"string","format":"date-time","title":"Berechnet Am"}},"type":"object","required":["kennung","teile","grundlage_von","grundlage_bis","teilfreistellung","zeitraeume","berechnet_am"],"title":"MusterportfolioKurz"},"MusterportfolioNachSteuer":{"properties":{"cagr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cagr"},"endwert":{"type":"number","title":"Endwert"}},"type":"object","required":["endwert"],"title":"MusterportfolioNachSteuer"},"MusterportfolioPunkt":{"properties":{"monat":{"type":"string","title":"Monat"},"wert":{"type":"number","title":"Wert"}},"type":"object","required":["monat","wert"],"title":"MusterportfolioPunkt"},"MusterportfolioResponse":{"properties":{"portfolio":{"$ref":"#/components/schemas/MusterportfolioDetail"},"annahmen":{"$ref":"#/components/schemas/MusterportfolioAnnahmen"}},"type":"object","required":["portfolio","annahmen"],"title":"MusterportfolioResponse"},"MusterportfolioTeil":{"properties":{"isin":{"type":"string","title":"Isin"},"anteil":{"type":"number","title":"Anteil"},"art":{"type":"string","enum":["aktien","anleihen","gold"],"title":"Art"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["isin","anteil","art"],"title":"MusterportfolioTeil"},"MusterportfolioZeitraum":{"properties":{"zeitraum":{"type":"string","title":"Zeitraum"},"vor_steuer":{"anyOf":[{"$ref":"#/components/schemas/MusterportfolioKennzahlenZeitraum"},{"type":"null"}]},"nach_steuer":{"anyOf":[{"$ref":"#/components/schemas/MusterportfolioNachSteuer"},{"type":"null"}]}},"type":"object","required":["zeitraum"],"title":"MusterportfolioZeitraum"},"MusterportfoliosResponse":{"properties":{"portfolios":{"items":{"$ref":"#/components/schemas/MusterportfolioKurz"},"type":"array","title":"Portfolios"},"annahmen":{"$ref":"#/components/schemas/MusterportfolioAnnahmen"}},"type":"object","required":["portfolios","annahmen"],"title":"MusterportfoliosResponse"},"NichtHinzugefuegt":{"properties":{"isin":{"type":"string","title":"Isin"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["isin","reason"],"title":"NichtHinzugefuegt","description":"Eine ISIN, die der Hintergrundlauf nicht hinzufügen konnte — mit Grund."},"NoteTagCount":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"note_count":{"type":"integer","title":"Note Count"},"user_count":{"type":"integer","title":"User Count"}},"type":"object","required":["id","name","note_count","user_count"],"title":"NoteTagCount"},"NoteTagCreate":{"properties":{"name":{"type":"string","maxLength":50,"title":"Name"}},"type":"object","required":["name"],"title":"NoteTagCreate"},"NoteTagItem":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"NoteTagItem"},"NotierungWaehlen":{"properties":{"symbol":{"type":"string","title":"Symbol"},"exchange":{"type":"string","title":"Exchange"}},"type":"object","required":["symbol","exchange"],"title":"NotierungWaehlen"},"NotierungWechselAntwort":{"properties":{"ok":{"type":"boolean","title":"Ok"},"grund":{"anyOf":[{"type":"string","enum":["same_listing","listing_not_found","no_api_key","plan_required","rate_limited","no_data","timeout","provider_error","currency_unknown","currency_unsupported","uploads_in_other_currency","price_break","dividends_failed"]},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"kurse":{"type":"integer","title":"Kurse","default":0},"erster_tag":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Erster Tag"},"letzter_tag":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Letzter Tag"},"wertpapiere":{"type":"integer","title":"Wertpapiere","default":0},"ausschuettungen":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ausschuettungen"}},"type":"object","required":["ok"],"title":"NotierungWechselAntwort"},"NutzerStartHinweis":{"properties":{"hinweis":{"type":"string","enum":["backtest","monte_carlo"],"title":"Hinweis"},"fassung":{"type":"integer","title":"Fassung"},"sichtbar":{"type":"boolean","title":"Sichtbar"},"ausgeblendet_fassung":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ausgeblendet Fassung"},"ausgeblendet_am":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ausgeblendet Am"}},"type":"object","required":["hinweis","fassung","sichtbar"],"title":"NutzerStartHinweis"},"NutzerZeile":{"properties":{"ampel":{"type":"string","enum":["ok","warn","fail"],"title":"Ampel"},"gesamt":{"type":"integer","title":"Gesamt"},"aktiv_30d":{"type":"integer","title":"Aktiv 30D"},"neu_7d":{"type":"integer","title":"Neu 7D"},"super_admins":{"type":"integer","title":"Super Admins"},"inaktive_super_admins":{"type":"integer","title":"Inaktive Super Admins"}},"type":"object","required":["ampel","gesamt","aktiv_30d","neu_7d","super_admins","inaktive_super_admins"],"title":"NutzerZeile"},"OAuthCompleteRequest":{"properties":{"token":{"type":"string","title":"Token"},"account_name":{"type":"string","maxLength":200,"minLength":1,"title":"Account Name"},"accepted_terms":{"type":"boolean","title":"Accepted Terms"},"accepted_disclaimer":{"type":"boolean","title":"Accepted Disclaimer","default":false},"country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Country"},"acquisition":{"anyOf":[{"$ref":"#/components/schemas/AkquisePayload"},{"type":"null"}]}},"type":"object","required":["token","account_name","accepted_terms"],"title":"OAuthCompleteRequest"},"OrdnerAendern":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"shared":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shared"},"aktualisierung":{"anyOf":[{"type":"string","enum":["manuell","bei_aufruf","taeglich","woechentlich","monatlich"]},{"type":"null"}],"title":"Aktualisierung"}},"type":"object","title":"OrdnerAendern"},"OrdnerAnlegen":{"properties":{"name":{"type":"string","title":"Name"},"shared":{"type":"boolean","title":"Shared","default":false}},"type":"object","required":["name"],"title":"OrdnerAnlegen"},"OrdnerMail":{"properties":{"mail":{"type":"boolean","title":"Mail"}},"type":"object","required":["mail"],"title":"OrdnerMail"},"OrdnerMassenzuordnung":{"properties":{"item_ids":{"items":{"type":"integer"},"type":"array","title":"Item Ids"}},"type":"object","required":["item_ids"],"title":"OrdnerMassenzuordnung","description":"Mehrere Wertpapiere auf einmal in EINEN Ordner legen oder herausnehmen.\n\nAnders als `OrdnerZuordnen` ist das bewusst ein Delta, kein Zielzustand:\nDie Auswahl in der Oberfläche sagt „diese fünf dazu\", und welche anderen\nOrdner die fünf sonst noch haben, geht die Aktion nichts an. Ein\nZielzustand würde genau die stillschweigend leerräumen."},"OrdnerZuordnen":{"properties":{"folder_ids":{"items":{"type":"integer"},"type":"array","title":"Folder Ids"}},"type":"object","required":["folder_ids"],"title":"OrdnerZuordnen","description":"Das Häkchen-Menü: die vollständige Liste der Ordner, in denen das\nWertpapier liegen soll. Nicht „hinzufügen\" oder „entfernen\", sondern der\nZielzustand — sonst gehen zwei gleichzeitige Änderungen gegeneinander."},"OrgGrantOverview":{"properties":{"id":{"type":"string","title":"Id"},"client_name":{"type":"string","title":"Client Name"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_refreshed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Refreshed At"},"user_id":{"type":"integer","title":"User Id"},"user_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Username"},"user_email":{"type":"string","title":"User Email"}},"type":"object","required":["id","client_name","scopes","created_at","user_id","user_email"],"title":"OrgGrantOverview"},"OrgKeyOverview":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"user_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Username"},"user_email":{"type":"string","title":"User Email"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"}},"type":"object","required":["id","user_id","user_email","name","key_prefix","created_at","last_used_at"],"title":"OrgKeyOverview"},"OrganizationCreate":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"OrganizationCreate"},"OrganizationRename":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"OrganizationRename"},"OrganizationRenameResponse":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"}},"type":"object","required":["name","slug"],"title":"OrganizationRenameResponse"},"OrganizationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"owner_id":{"type":"integer","title":"Owner Id"},"max_seats":{"type":"integer","title":"Max Seats"},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"member_count":{"type":"integer","title":"Member Count","default":0},"pending_invitations":{"type":"integer","title":"Pending Invitations","default":0}},"type":"object","required":["id","name","slug","owner_id","max_seats","subscription_status","created_at"],"title":"OrganizationResponse"},"OwnerChangeRequest":{"properties":{"new_owner_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"New Owner User Id"},"new_owner_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"New Owner Email"},"new_owner_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Owner Username"}},"type":"object","title":"OwnerChangeRequest"},"OwnerSSOConfigRequest":{"properties":{"sso_provider":{"type":"string","title":"Sso Provider"},"sso_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Domain"},"sso_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Client Id"},"sso_client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Client Secret"},"sso_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Tenant Id"},"saml_metadata_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Metadata Url"},"saml_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Entity Id"},"saml_sso_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Sso Url"},"saml_certificate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Certificate"},"saml_name_id_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Name Id Format"},"saml_attribute_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Attribute Email"},"saml_attribute_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Attribute Name"}},"type":"object","required":["sso_provider"],"title":"OwnerSSOConfigRequest","description":"Request to configure SSO by corporate owner"},"OwnerSSOStatusResponse":{"properties":{"sso_self_service_enabled":{"type":"boolean","title":"Sso Self Service Enabled"},"sso_enabled":{"type":"boolean","title":"Sso Enabled"},"sso_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Provider"},"sso_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Domain"},"saml_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Entity Id"},"saml_sso_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Sso Url"},"saml_certificate_present":{"type":"boolean","title":"Saml Certificate Present","default":false},"sp_metadata_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sp Metadata Url"},"sp_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sp Entity Id"},"test_login_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Login Url"}},"type":"object","required":["sso_self_service_enabled","sso_enabled"],"title":"OwnerSSOStatusResponse","description":"SSO configuration status for owner"},"PageSeoUpdate":{"properties":{"meta_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Title"},"meta_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Description"}},"type":"object","title":"PageSeoUpdate"},"PaketAngebot":{"properties":{"key":{"type":"string","title":"Key"},"credits":{"type":"integer","title":"Credits"},"price_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Cents"}},"type":"object","required":["key","credits","price_cents"],"title":"PaketAngebot","description":"Ein Credit-Paket in der Währung des Kunden."},"PartnerAntwort":{"properties":{"id":{"type":"integer","title":"Id"},"display_name":{"type":"string","title":"Display Name"},"legal_name":{"type":"string","title":"Legal Name"},"email":{"type":"string","title":"Email"},"country":{"type":"string","title":"Country"},"tax_status":{"type":"string","title":"Tax Status"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Id"},"active":{"type":"boolean","title":"Active"},"codes":{"type":"integer","title":"Codes"}},"type":"object","required":["id","display_name","legal_name","email","country","tax_status","vat_id","active","codes"],"title":"PartnerAntwort"},"PartnerEingabe":{"properties":{"display_name":{"type":"string","maxLength":200,"minLength":1,"title":"Display Name"},"legal_name":{"type":"string","maxLength":200,"minLength":1,"title":"Legal Name"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"address_line":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Address Line"},"postal_code":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Postal Code"},"city":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"City"},"country":{"type":"string","maxLength":2,"minLength":2,"title":"Country","default":"DE"},"tax_status":{"type":"string","maxLength":20,"title":"Tax Status","default":"domestic"},"vat_id":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Vat Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["display_name","legal_name","email"],"title":"PartnerEingabe"},"PasswordConfirmRequest":{"properties":{"password":{"type":"string","maxLength":200,"minLength":1,"title":"Password"}},"type":"object","required":["password"],"title":"PasswordConfirmRequest"},"PasswortLinkAntwort":{"properties":{"user_email":{"type":"string","title":"User Email"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["user_email","expires_at"],"title":"PasswortLinkAntwort"},"PasswortZurueckgesetztAntwort":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["id","email","expires_at"],"title":"PasswortZurueckgesetztAntwort"},"PennyAnfrage":{"properties":{"code":{"type":"string","maxLength":6,"minLength":6,"title":"Code"}},"type":"object","required":["code"],"title":"PennyAnfrage"},"PersonGrenze":{"properties":{"art":{"type":"string","title":"Art"},"grenze":{"type":"integer","title":"Grenze"},"verbraucht":{"type":"integer","title":"Verbraucht"}},"type":"object","required":["art","grenze","verbraucht"],"title":"PersonGrenze","description":"Die Grenze der Person im Credit-Topf ihres Accounts (`services/credits`)."},"PlanZahl":{"properties":{"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"confirmed":{"type":"integer","title":"Confirmed"}},"type":"object","required":["plan","confirmed"],"title":"PlanZahl"},"PortalResponse":{"properties":{"portal_url":{"type":"string","title":"Portal Url"}},"type":"object","required":["portal_url"],"title":"PortalResponse"},"PortfolioAktualisierungStand":{"properties":{"state":{"type":"string","enum":["idle","running","done","failed"],"title":"State"},"phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase"},"percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent"},"done":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Done"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"elapsed_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elapsed Seconds"},"eta_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eta Seconds"},"aktualisiert":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aktualisiert"},"nichts_neu":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nichts Neu"},"ohne_guthaben":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ohne Guthaben"},"fehler":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fehler"},"credits_verbraucht":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Verbraucht"}},"type":"object","required":["state"],"title":"PortfolioAktualisierungStand","description":"Der Stand der Aktualisierung von Portfolios (`services/portfolio_aktualisierung`).\n\nFortschritt in der Form aus FLEET_LAEUFE_SPEC §1 (`percent` … `eta_seconds`),\nam Ende (`done`) dazu die Bilanz."},"PortfolioTestEinstellungen":{"properties":{"start_capital":{"type":"number","title":"Start Capital"},"neutral":{"type":"boolean","title":"Neutral"}},"type":"object","required":["start_capital","neutral"],"title":"PortfolioTestEinstellungen"},"PortfolioTestErgebnis":{"properties":{"grundlage":{"$ref":"#/components/schemas/PortfolioTestGrundlage"},"modus":{"type":"string","const":"umschichten","title":"Modus"},"fenster":{"$ref":"#/components/schemas/PortfolioTestFenster"},"einstellungen":{"$ref":"#/components/schemas/PortfolioTestEinstellungen"},"gewichte":{"$ref":"#/components/schemas/PortfolioTestVorherNachherGewichte"},"kennzahlen":{"$ref":"#/components/schemas/PortfolioTestKennzahlen"},"plan":{"$ref":"#/components/schemas/PortfolioTestOffen"},"diversifikation":{"$ref":"#/components/schemas/PortfolioTestOffen"},"korrelation":{"items":{"$ref":"#/components/schemas/PortfolioTestKorrelation"},"type":"array","title":"Korrelation"},"zeitreihe":{"$ref":"#/components/schemas/PortfolioTestVerlauf"}},"type":"object","required":["grundlage","modus","fenster","einstellungen","gewichte","kennzahlen","plan","diversifikation","korrelation","zeitreihe"],"title":"PortfolioTestErgebnis","description":"Antwort von `hinzufuegen_testen.vergleiche` — Beträge in EUR."},"PortfolioTestFenster":{"properties":{"start":{"type":"string","format":"date","title":"Start"},"ende":{"type":"string","format":"date","title":"Ende"},"original_start":{"type":"string","format":"date","title":"Original Start"},"verkuerzt_durch":{"items":{"type":"string"},"type":"array","title":"Verkuerzt Durch"}},"type":"object","required":["start","ende","original_start","verkuerzt_durch"],"title":"PortfolioTestFenster"},"PortfolioTestGespeichert":{"properties":{"favorit_id":{"type":"integer","title":"Favorit Id"},"list_id":{"type":"integer","title":"List Id"},"list_name":{"type":"string","title":"List Name"},"eingereiht":{"type":"boolean","title":"Eingereiht"}},"type":"object","required":["favorit_id","list_id","list_name","eingereiht"],"title":"PortfolioTestGespeichert"},"PortfolioTestGestartet":{"properties":{"lauf_id":{"type":"string","title":"Lauf Id"}},"type":"object","required":["lauf_id"],"title":"PortfolioTestGestartet"},"PortfolioTestGewicht":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"anteil":{"type":"number","title":"Anteil"},"neu":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Neu"}},"type":"object","required":["isin","anteil"],"title":"PortfolioTestGewicht"},"PortfolioTestGrundlage":{"properties":{"art":{"type":"string","enum":["portfolio","vorlage"],"title":"Art"},"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"vorlage":{"type":"boolean","title":"Vorlage"},"top_liste":{"type":"boolean","title":"Top Liste","default":false}},"type":"object","required":["art","id","name","vorlage"],"title":"PortfolioTestGrundlage"},"PortfolioTestKandidat":{"properties":{"isin":{"type":"string","title":"Isin"},"anteil":{"type":"number","title":"Anteil"}},"type":"object","required":["isin","anteil"],"title":"PortfolioTestKandidat"},"PortfolioTestKennzahlen":{"properties":{"vorher":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object","title":"Vorher"},"nachher":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object","title":"Nachher"}},"type":"object","required":["vorher","nachher"],"title":"PortfolioTestKennzahlen"},"PortfolioTestKorrelation":{"properties":{"isin":{"type":"string","title":"Isin"},"zum_portfolio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Zum Portfolio"},"monate":{"type":"integer","title":"Monate"}},"type":"object","required":["isin","monate"],"title":"PortfolioTestKorrelation"},"PortfolioTestOffen":{"properties":{"vorher":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Vorher"},"nachher":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Nachher"}},"type":"object","title":"PortfolioTestOffen"},"PortfolioTestPunkt":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"PortfolioTestPunkt"},"PortfolioTestSpeichern":{"properties":{"id":{"type":"integer","title":"Id"},"kandidaten":{"items":{"$ref":"#/components/schemas/PortfolioTestKandidat"},"type":"array","maxItems":10,"minItems":1,"title":"Kandidaten"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"list_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"List Id"}},"type":"object","required":["id","kandidaten","name"],"title":"PortfolioTestSpeichern"},"PortfolioTestStand":{"properties":{"lauf_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lauf Id"},"stand":{"type":"string","enum":["keiner","laeuft","fertig","fehler"],"title":"Stand"},"grund":{"anyOf":[{"type":"string","enum":["grundlage_fehlt","anteile_ungueltig","keine_kurse","zeitraum_zu_kurz","nicht_berechenbar"]},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"ergebnis":{"anyOf":[{"$ref":"#/components/schemas/PortfolioTestErgebnis"},{"type":"null"}]}},"type":"object","required":["lauf_id","stand"],"title":"PortfolioTestStand","description":"Stand des Laufs dieser Person. `ergebnis` nur bei `fertig`, `grund`\n(`hinzufuegen_testen.GRUENDE`) und `detail` nur bei `fehler`."},"PortfolioTestStart":{"properties":{"art":{"type":"string","enum":["portfolio","vorlage"],"title":"Art"},"id":{"type":"integer","title":"Id"},"kandidaten":{"items":{"$ref":"#/components/schemas/PortfolioTestKandidat"},"type":"array","maxItems":10,"minItems":1,"title":"Kandidaten"}},"type":"object","required":["art","id","kandidaten"],"title":"PortfolioTestStart"},"PortfolioTestVerlauf":{"properties":{"vorher":{"items":{"$ref":"#/components/schemas/PortfolioTestPunkt"},"type":"array","title":"Vorher"},"nachher":{"items":{"$ref":"#/components/schemas/PortfolioTestPunkt"},"type":"array","title":"Nachher"}},"type":"object","required":["vorher","nachher"],"title":"PortfolioTestVerlauf"},"PortfolioTestVorherNachherGewichte":{"properties":{"vorher":{"items":{"$ref":"#/components/schemas/PortfolioTestGewicht"},"type":"array","title":"Vorher"},"nachher":{"items":{"$ref":"#/components/schemas/PortfolioTestGewicht"},"type":"array","title":"Nachher"}},"type":"object","required":["vorher","nachher"],"title":"PortfolioTestVorherNachherGewichte"},"PriceStats":{"properties":{"first":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First"},"last":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"},"avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg"},"expected_return_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Return Percent"}},"type":"object","title":"PriceStats","description":"Eckwerte der gerechneten Kursreihe — im Datenfenster, nicht der ganzen."},"PublicSupportChatStatus":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"widget_key_anonymous":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Key Anonymous"},"widget_key_authenticated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Key Authenticated"}},"type":"object","required":["enabled"],"title":"PublicSupportChatStatus","description":"Was der Lader (shared/SupportChatLoader.tsx) für die Entscheidung braucht.\nDie Schlüssel sind öffentlich (121assist schützt das Widget über die\nerlaubten Domains); im Wissen der Angemeldeten steht deshalb nur, was\nauch in der App erklärt wird, nichts Vertrauliches."},"PufferEinstellungen":{"properties":{"groesse_jahre":{"type":"number","maximum":10.0,"exclusiveMinimum":0.0,"title":"Groesse Jahre"},"zins_art":{"type":"string","enum":["fest","geldmarkt"],"title":"Zins Art","default":"fest"},"zins_fest":{"type":"number","maximum":20.0,"minimum":-5.0,"title":"Zins Fest","default":0.0},"zins_untergrenze_null":{"type":"boolean","title":"Zins Untergrenze Null","default":true},"x_prozent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"X Prozent","default":0.0},"y_toleranz":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Y Toleranz","default":10.0}},"type":"object","required":["groesse_jahre"],"title":"PufferEinstellungen","description":"Liquiditätspuffer: ein Topf außerhalb der Aufteilung (Konzept, Abschnitt 3)."},"QuittungResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true}},"type":"object","title":"QuittungResponse","description":"Quittung ohne Nutzlast — nur „erledigt\"."},"RecoveryCodesResponse":{"properties":{"recovery_codes":{"items":{"type":"string"},"type":"array","title":"Recovery Codes"}},"type":"object","required":["recovery_codes"],"title":"RecoveryCodesResponse"},"RefreshTokenRequest":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"RefreshTokenRequest"},"RegisterRequest":{"properties":{"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","minLength":12,"title":"Password"},"phone":{"anyOf":[{"type":"string","maxLength":20,"minLength":8},{"type":"null"}],"title":"Phone","description":"E.164, z.B. +491701234567"},"accept_terms":{"type":"boolean","title":"Accept Terms","description":"DSGVO/Terms akzeptiert"},"accept_privacy":{"type":"boolean","title":"Accept Privacy","description":"Datenschutz akzeptiert"},"accept_disclaimer":{"type":"boolean","title":"Accept Disclaimer","description":"Risikohinweis/keine Anlageberatung akzeptiert","default":false},"marketing_consent":{"type":"boolean","title":"Marketing Consent","description":"Marketing-Einwilligung","default":false},"language":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Language"},"country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Country","description":"Wohnsitzland (ISO-3166-1 alpha-2)"},"market":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Market","description":"Länderversion der Registrierung (Land im URL-Präfix)"},"acquisition":{"anyOf":[{"$ref":"#/components/schemas/AkquisePayload"},{"type":"null"}],"description":"Herkunft: Kampagne, Verweis, Klick-Kennung"},"partner_code":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Partner Code"},"team_invitation":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Team Invitation"},"first_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Last Name"},"company":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company"},"requested_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested Plan","description":"Gewünschter Plan (basic/pro/advisor/corporate)"},"requested_billing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested Billing","description":"monthly/yearly"},"requested_currency":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{3}$"},{"type":"null"}],"title":"Requested Currency"}},"type":"object","required":["email","password","accept_terms","accept_privacy"],"title":"RegisterRequest"},"Reihenfolge":{"properties":{"folder_ids":{"items":{"type":"integer"},"type":"array","title":"Folder Ids"}},"type":"object","required":["folder_ids"],"title":"Reihenfolge"},"ResetPasswordRequest":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","minLength":12,"title":"New Password"},"sms_code":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Sms Code"}},"type":"object","required":["token","new_password"],"title":"ResetPasswordRequest"},"RobotsTxtUpdate":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"RobotsTxtUpdate"},"RoleCreate":{"properties":{"code":{"type":"string","maxLength":50,"minLength":2,"title":"Code"},"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"color":{"type":"string","maxLength":7,"title":"Color","default":"#6b7280"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"level":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Level","default":0},"is_default":{"type":"boolean","title":"Is Default","default":false},"price_monthly":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Monthly"},"price_yearly":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Yearly"},"sort_order":{"type":"integer","title":"Sort Order","default":0},"features":{"additionalProperties":{"type":"string"},"type":"object","title":"Features","default":{}}},"type":"object","required":["code","name"],"title":"RoleCreate"},"RoleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"color":{"type":"string","title":"Color"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"level":{"type":"integer","title":"Level"},"is_system_role":{"type":"boolean","title":"Is System Role"},"is_default":{"type":"boolean","title":"Is Default"},"is_active":{"type":"boolean","title":"Is Active"},"price_monthly":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Monthly"},"price_yearly":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Yearly"},"sort_order":{"type":"integer","title":"Sort Order"},"user_count":{"type":"integer","title":"User Count","default":0},"features":{"additionalProperties":{"type":"string"},"type":"object","title":"Features","default":{}}},"type":"object","required":["id","code","name","description","color","icon","level","is_system_role","is_default","is_active","price_monthly","price_yearly","sort_order"],"title":"RoleResponse"},"RoleUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Level"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"price_monthly":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Monthly"},"price_yearly":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Yearly"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"},"features":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Features"}},"type":"object","title":"RoleUpdate"},"RuecknahmeIn":{"properties":{"token":{"type":"string","maxLength":200,"minLength":10,"title":"Token"}},"type":"object","required":["token"],"title":"RuecknahmeIn"},"RuecknahmeOut":{"properties":{"reference":{"type":"string","title":"Reference"}},"type":"object","required":["reference"],"title":"RuecknahmeOut"},"SSOCheckRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"SSOCheckRequest"},"SSOCheckResponse":{"properties":{"sso_available":{"type":"boolean","title":"Sso Available"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"organization_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Name"},"login_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Login Url"}},"type":"object","required":["sso_available"],"title":"SSOCheckResponse"},"SSOConfigRequest":{"properties":{"sso_enabled":{"type":"boolean","title":"Sso Enabled"},"sso_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Provider"},"sso_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Domain"},"sso_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Client Id"},"sso_client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Client Secret"},"sso_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Tenant Id"},"saml_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Entity Id"},"saml_sso_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Sso Url"},"saml_slo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Slo Url"},"saml_certificate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Certificate"},"saml_metadata_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Metadata Url"},"saml_name_id_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Name Id Format"},"saml_attribute_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Attribute Email"},"saml_attribute_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saml Attribute Name"},"sso_self_service_enabled":{"type":"boolean","title":"Sso Self Service Enabled","default":true}},"type":"object","required":["sso_enabled"],"title":"SSOConfigRequest"},"SSOProviderInfo":{"properties":{"provider":{"type":"string","title":"Provider"},"organization_name":{"type":"string","title":"Organization Name"},"organization_id":{"type":"integer","title":"Organization Id"}},"type":"object","required":["provider","organization_name","organization_id"],"title":"SSOProviderInfo"},"SamplePrices":{"properties":{"first_5":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"First 5","default":[]},"last_5":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Last 5","default":[]}},"type":"object","title":"SamplePrices","description":"Die ersten und letzten fuenf Kurse — als Augenschein, nicht als Rechnung."},"SearchResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SearchResult"},"type":"array","title":"Data"},"count":{"type":"integer","title":"Count"},"api_configured":{"type":"boolean","title":"Api Configured","default":true},"grund":{"anyOf":[{"type":"string","enum":["no_api_key","provider_error","plan_required","no_data_in_range","no_data","timeout","connection_error"]},{"type":"null"}],"title":"Grund"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["data","count"],"title":"SearchResponse"},"SearchResult":{"properties":{"symbol":{"type":"string","title":"Symbol"},"instrument_name":{"type":"string","title":"Instrument Name"},"exchange":{"type":"string","title":"Exchange"},"mic_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mic Code"},"exchange_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange Timezone"},"instrument_type":{"type":"string","title":"Instrument Type"},"instrument_type_label":{"type":"string","title":"Instrument Type Label"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"known_isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Known Isin"},"full_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Symbol"}},"type":"object","required":["symbol","instrument_name","exchange","instrument_type","instrument_type_label"],"title":"SearchResult"},"SecurityDataStatusResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"fund_isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fund Isin"},"potential_fund_isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Potential Fund Isin"},"data_range":{"anyOf":[{"$ref":"#/components/schemas/DateRange"},{"type":"null"}]},"available_range":{"anyOf":[{"$ref":"#/components/schemas/DateRange"},{"type":"null"}]},"last_synced":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Synced"},"update_available":{"type":"boolean","title":"Update Available","default":false},"needs_migration":{"type":"boolean","title":"Needs Migration","default":false},"can_migrate":{"type":"boolean","title":"Can Migrate","default":false},"can_sync":{"type":"boolean","title":"Can Sync","default":false},"days_behind":{"type":"integer","title":"Days Behind","default":0},"data_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source"}},"type":"object","required":["id","name"],"title":"SecurityDataStatusResponse","description":"Wie aktuell die Kurse EINES Wertpapiers sind — und was sich tun laesst."},"SecurityResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"fund_isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fund Isin"},"wkn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wkn"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"ter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ter","default":0.0},"ausgabeaufschlag":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ausgabeaufschlag","default":0.0},"dividendenrendite":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dividendenrendite","default":0.0},"dividends_data":{"anyOf":[{"items":{"$ref":"#/components/schemas/DividendEntry"},"type":"array"},{"type":"null"}],"title":"Dividends Data"},"dividends_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dividends Count"},"dividends_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dividends Currency"},"sector_distribution":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Sector Distribution"},"country_distribution":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Country Distribution"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"data_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source"},"prices_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prices Source"},"has_system_prices":{"type":"boolean","title":"Has System Prices","default":false},"has_manual_prices":{"type":"boolean","title":"Has Manual Prices","default":false},"column_index":{"type":"integer","title":"Column Index"},"price_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Count"},"data_start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Start Date"},"data_end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data End Date"},"invested_amount_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Invested Amount Eur"},"holdings_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Holdings Count"},"holdings_as_of_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Holdings As Of Date"},"holdings_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Holdings Source"},"distribution_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Distribution Scope"}},"type":"object","required":["id","name","isin","wkn","column_index"],"title":"SecurityResponse"},"SecurityUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"wkn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wkn"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"ausgabeaufschlag":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ausgabeaufschlag"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"column_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Column Index"},"invested_amount_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Invested Amount Eur"}},"type":"object","title":"SecurityUpdate"},"SecurityValidationResponse":{"properties":{"security_id":{"type":"integer","title":"Security Id"},"name":{"type":"string","title":"Name"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isin"},"wkn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wkn"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"dividends_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dividends Currency"},"status":{"type":"string","title":"Status"},"price_count":{"type":"integer","title":"Price Count","default":0},"date_range":{"anyOf":[{"$ref":"#/components/schemas/DateRange"},{"type":"null"}]},"price_stats":{"anyOf":[{"$ref":"#/components/schemas/PriceStats"},{"type":"null"}]},"befunde":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Befunde","default":[]},"sample_prices":{"anyOf":[{"$ref":"#/components/schemas/SamplePrices"},{"type":"null"}]},"dividendenrendite":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dividendenrendite"},"dividends_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dividends Info"},"sector_distribution":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sector Distribution"},"country_distribution":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Country Distribution"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"ter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ter"},"ausgabeaufschlag":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ausgabeaufschlag"},"instrument_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Type"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"fund_isin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fund Isin"},"distribution_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Distribution Scope"},"sector_distribution_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector Distribution Scope"},"country_distribution_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Distribution Scope"},"enrichment":{"anyOf":[{"$ref":"#/components/schemas/StammdatenBlock"},{"type":"null"}]},"enrichment_status":{"anyOf":[{"$ref":"#/components/schemas/AnreicherungsStand"},{"type":"null"}]}},"type":"object","required":["security_id","name","status"],"title":"SecurityValidationResponse","description":"Ein Wertpapier im Pruef-Dialog.\n\nDie Felder stehen hier auch dann, wenn die Pruefung frueh abbricht (kein\nKurs im Datenfenster): Vorher gab dieser Zweig ein Dict mit VIER\nSchluesseln zurueck, und die Oberflaeche zeigte an der Stelle der\nKursanzahl eine leere Flaeche. Eine Antwort mit zwei Formen ist eine\nAntwort, auf die man sich nicht verlassen kann."},"SessionResponse":{"properties":{"id":{"type":"integer","title":"Id"},"device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Name"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"type":"string","format":"date-time","title":"Last Used At"},"is_current":{"type":"boolean","title":"Is Current","default":false}},"type":"object","required":["id","device_name","ip_address","created_at","last_used_at"],"title":"SessionResponse"},"SignupIntentResponse":{"properties":{"plan_code":{"type":"string","title":"Plan Code"},"plan_name":{"type":"string","title":"Plan Name"},"interval":{"type":"string","title":"Interval"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"account_plan":{"type":"boolean","title":"Account Plan"},"needs_account_name":{"type":"boolean","title":"Needs Account Name"},"automatisch_zur_kasse":{"type":"boolean","title":"Automatisch Zur Kasse"}},"type":"object","required":["plan_code","plan_name","interval","account_plan","needs_account_name","automatisch_zur_kasse"],"title":"SignupIntentResponse","description":"Der bei der Registrierung gewählte Tarif — `null`, wenn keiner offen ist."},"SimulationPresetCreate":{"properties":{"name":{"type":"string","title":"Name"},"years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years"},"step_percent":{"type":"number","title":"Step Percent","default":10.0},"dividend_min_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dividend Min Percent"},"tax_rate":{"type":"number","title":"Tax Rate","default":26.375},"fee_fixed":{"type":"number","title":"Fee Fixed","default":0.0},"fee_percent":{"type":"number","title":"Fee Percent","default":0.0},"fee_min":{"type":"number","title":"Fee Min","default":0.0},"fee_max":{"type":"number","title":"Fee Max","default":0.0},"depot_gebuehr_pct":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Depot Gebuehr Pct","default":0.0},"start_capital":{"type":"number","title":"Start Capital","default":10000.0},"exclude_single_security":{"type":"boolean","title":"Exclude Single Security","default":false},"min_securities":{"type":"integer","title":"Min Securities","default":1},"concentration_filters":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Concentration Filters"}},"type":"object","required":["name"],"title":"SimulationPresetCreate"},"SimulationPresetResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years"},"step_percent":{"type":"number","title":"Step Percent"},"dividend_min_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dividend Min Percent"},"tax_rate":{"type":"number","title":"Tax Rate"},"fee_fixed":{"type":"number","title":"Fee Fixed"},"fee_percent":{"type":"number","title":"Fee Percent"},"fee_min":{"type":"number","title":"Fee Min"},"fee_max":{"type":"number","title":"Fee Max"},"depot_gebuehr_pct":{"type":"number","title":"Depot Gebuehr Pct","default":0.0},"start_capital":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Capital","default":10000.0},"exclude_single_security":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exclude Single Security","default":false},"min_securities":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Securities","default":1},"concentration_filters":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Concentration Filters"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","years","step_percent","dividend_min_percent","tax_rate","fee_fixed","fee_percent","fee_min","fee_max","created_at","updated_at"],"title":"SimulationPresetResponse"},"SimulationPresetUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years"},"step_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Step Percent"},"dividend_min_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dividend Min Percent"},"tax_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Rate"},"fee_fixed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fee Fixed"},"fee_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fee Percent"},"fee_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fee Min"},"fee_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fee Max"},"depot_gebuehr_pct":{"anyOf":[{"type":"number","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Depot Gebuehr Pct"},"start_capital":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Capital"},"exclude_single_security":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exclude Single Security"},"min_securities":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Securities"},"concentration_filters":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Concentration Filters"}},"type":"object","title":"SimulationPresetUpdate"},"SimulationSettings":{"properties":{"simulation_table_id":{"type":"integer","title":"Simulation Table Id"},"selected_securities":{"items":{"type":"integer"},"type":"array","title":"Selected Securities"},"years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years"},"step_percent":{"type":"number","title":"Step Percent","default":10.0},"dividend_min_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dividend Min Percent"},"tax_rate":{"type":"number","title":"Tax Rate","default":26.375},"fee_fixed":{"type":"number","title":"Fee Fixed","default":0.0},"fee_percent":{"type":"number","title":"Fee Percent","default":0.0},"fee_min":{"type":"number","title":"Fee Min","default":0.0},"fee_max":{"type":"number","title":"Fee Max","default":0.0},"start_capital":{"type":"number","title":"Start Capital","default":10000.0},"exclude_single_security":{"type":"boolean","title":"Exclude Single Security","default":false},"min_securities":{"type":"integer","title":"Min Securities","default":1},"is_public":{"type":"boolean","title":"Is Public","default":true},"sector_limits":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Sector Limits"},"country_limits":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Country Limits"},"current_portfolio":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Current Portfolio"},"current_portfolio_amounts":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Current Portfolio Amounts"},"benchmark_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Id"},"risk_free_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Risk Free Rate","default":2.0},"tax_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Country"},"tax_capital_gains_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Capital Gains Rate"},"tax_dividend_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Dividend Rate"},"tax_wealth_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Wealth Rate"},"tax_long_term_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Long Term Rate"},"tax_long_term_holding_years":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Long Term Holding Years"},"tax_partial_exemption_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Partial Exemption Pct"},"tax_annual_allowance_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Annual Allowance Eur"},"tax_vorabpauschale":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tax Vorabpauschale"},"tax_nl_modus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Nl Modus"},"liquidate_at_end":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Liquidate At End","default":false},"ausschuettungen":{"type":"string","enum":["anlegen","verrechnen","puffer","nicht_beachten"],"title":"Ausschuettungen","default":"nicht_beachten"},"ausschuettung_zahlt_entnahme":{"type":"boolean","title":"Ausschuettung Zahlt Entnahme","default":true},"depot_gebuehr_pct":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Depot Gebuehr Pct","default":0.0},"account_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Type"},"account_pea_open_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Pea Open Date"},"account_withdrawal_tax_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Account Withdrawal Tax Rate"},"entnahme":{"anyOf":[{"$ref":"#/components/schemas/EntnahmeEinstellungen"},{"type":"null"}]},"ansparen":{"anyOf":[{"$ref":"#/components/schemas/AnsparEinstellungen"},{"type":"null"}]}},"type":"object","required":["simulation_table_id","selected_securities"],"title":"SimulationSettings"},"SimulationTableCreate":{"properties":{"name":{"type":"string","title":"Name"},"client_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Tag"}},"type":"object","required":["name"],"title":"SimulationTableCreate"},"SimulationTableListResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"security_count":{"type":"integer","title":"Security Count"},"common_period_years":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Common Period Years"},"client_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Tag"}},"type":"object","required":["id","name","created_at","security_count","common_period_years"],"title":"SimulationTableListResponse"},"SimulationTableResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"common_period_years":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Common Period Years"},"securities":{"items":{"$ref":"#/components/schemas/SecurityResponse"},"type":"array","title":"Securities","default":[]},"client_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Tag"}},"type":"object","required":["id","name","created_at","updated_at","start_date","end_date","common_period_years"],"title":"SimulationTableResponse"},"SiteConfigUpdate":{"properties":{"login_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Login Enabled"},"registration_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Enabled"},"registration_contact_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Contact Enabled"},"registration_contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Contact Email"},"areas":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Areas"},"default_landing_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Landing Page"},"public_landing_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Landing Page"},"site_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Name"},"site_tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Tagline"},"welcome_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Welcome Message"},"maintenance_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Maintenance Mode"},"maintenance_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maintenance Message"},"primary_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color"},"arena_publish_mode":{"anyOf":[{"type":"string","enum":["always","user_choice","never"]},{"type":"null"}],"title":"Arena Publish Mode"},"max_upload_size_mb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Upload Size Mb"}},"additionalProperties":false,"type":"object","title":"SiteConfigUpdate","description":"Schema für Site-Config Update.\n\n`extra=\"forbid\"`: Ein Feld, das hier fehlt, verwarf Pydantic still — die\nVerwaltung schickte `registration_contact_*` monatelang ins Leere, und ein\nAufrufer mit einem entfernten Feld (20260916j) bekäme 200 für nichts."},"SmsActivateRequest":{"properties":{"code":{"type":"string","maxLength":10,"minLength":6,"title":"Code"}},"type":"object","required":["code"],"title":"SmsActivateRequest"},"SmsSendCodeRequest":{"properties":{"phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Phone"},"password":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Password"}},"type":"object","title":"SmsSendCodeRequest"},"SortOrderUpdate":{"properties":{"items":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SortOrderUpdate","description":"Schema für Batch-Update der Sortierreihenfolge"},"Sparpause":{"properties":{"ab_jahr":{"type":"integer","maximum":50.0,"minimum":0.0,"title":"Ab Jahr"},"jahre":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Jahre"}},"additionalProperties":false,"type":"object","required":["ab_jahr","jahre"],"title":"Sparpause","description":"Eine Zeit, in der die Sparrate ruht (Auszeit, Elternzeit) — Monte Carlo.\n\n`ab_jahr` zählt ab heute; die Pause umfasst die Jahre `ab_jahr` …\n`ab_jahr + jahre − 1`. Die Dynamik der Rate läuft weiter."},"SprachenZeile":{"properties":{"ampel":{"type":"string","enum":["ok","warn","fail"],"title":"Ampel"},"live":{"type":"integer","title":"Live"},"fehlende_texte":{"type":"integer","title":"Fehlende Texte"}},"type":"object","required":["ampel","live","fehlende_texte"],"title":"SprachenZeile"},"StammdatenBlock":{"properties":{"fund_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fund Name"},"ter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ter"},"fund_size_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fund Size Eur"},"inception_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inception Date"},"distribution_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Distribution Policy"},"replication_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replication Method"},"fund_domicile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fund Domicile"},"holdings_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Holdings Count"},"index_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Name"},"sfdr_classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sfdr Classification"},"data_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source"},"top_holdings":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Top Holdings"},"sector_distribution":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sector Distribution"},"country_distribution":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Country Distribution"},"extracted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted At"}},"type":"object","title":"StammdatenBlock","description":"Die Stammdaten aus `funds`, wie der Pruef-Dialog sie zeigt.\n\nDie Feldnamen sind englisch, die Spalten dahinter deutsch — und bis zum\n14.09.2026 las der Router acht davon unter ihrem ENGLISCHEN Namen per\n`getattr(fund, 'fund_size_eur', None)`. Ein `getattr` mit Vorgabewert\nwirft nicht: Die Antwort trug `null`, und zwar fuer jedes Wertpapier,\nseit 05/2026. Auf Prod belegt (14.09.2026, Attrappe\n`datensatz_pruefung.json`): `ter` und `index_name` — die zwei Spalten, die\nwirklich so heissen — standen gefuellt da, die uebrigen acht ausnahmslos\nauf `null`.\n\nDeshalb steht die Zuordnung Wirename → Spalte jetzt namentlich in\n`_stammdaten_block()` und laeuft ueber `stammdaten_service`: dieselbe\nHandeingabe, die der Stammdaten-Dialog zeigt, steht damit auch hier."},"StammdatenSetzen":{"properties":{"scope":{"type":"string","title":"Scope","default":"user"},"values":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Values"}},"type":"object","title":"StammdatenSetzen","description":"Werte einer Stufe. `null` (oder leer) entfernt die Ueberschreibung des\nFeldes auf dieser Stufe — dann gilt wieder der Systemwert.\n\nSteht hier und nicht in einem Router, weil zwei Einstiege dasselbe schicken:\ndie Merkliste ueber ihren Eintrag und die Verwaltung ueber die ISIN. Zwei\nDefinitionen desselben Vertrags driften auseinander, sobald einer von beiden\nein Feld ergaenzt.\n\nDie Vorgabe ist bewusst die schwaechste Stufe: Ein vergessener `scope` soll\nnichts plattformweit setzen."},"StartHinweisStand":{"properties":{"hinweis":{"type":"string","enum":["backtest","monte_carlo"],"title":"Hinweis"},"fassung":{"type":"integer","title":"Fassung"},"geaendert_am":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Geaendert Am"},"geaendert_von_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geaendert Von Email"},"ausgeblendet_anzahl":{"type":"integer","title":"Ausgeblendet Anzahl"}},"type":"object","required":["hinweis","fassung","ausgeblendet_anzahl"],"title":"StartHinweisStand"},"StartHinweiseAntwort":{"properties":{"anzeigen":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Anzeigen"}},"type":"object","required":["anzeigen"],"title":"StartHinweiseAntwort","description":"Je Hinweis: erscheint er vor dem nächsten Start?"},"SubAccountAngelegt":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"sub_account_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Account Label"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"n_tables":{"type":"integer","title":"N Tables","default":0},"n_simulations":{"type":"integer","title":"N Simulations","default":0},"n_favorites":{"type":"integer","title":"N Favorites","default":0},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["id","email","sub_account_label","created_at","last_login","expires_at"],"title":"SubAccountAngelegt","description":"Antwort beim Anlegen: dazu nur das Ende des Links in der Mail an den Mandanten.\n\nBis 17.10.2026 stand hier das Startpasswort (`initial_password`) — der\nBerater kannte damit das Passwort seines Mandanten (FLEET_ADMIN_SPEC §6,\nNachtrag 16.10.2026). Kein Passwort, kein Token, kein Link."},"SubAccountCreate":{"properties":{"label":{"type":"string","maxLength":100,"minLength":1,"title":"Label","description":"Mandanten-Bezeichnung"},"email":{"type":"string","format":"email","title":"Email"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"}},"type":"object","required":["label","email"],"title":"SubAccountCreate"},"SubAccountResponse":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"sub_account_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Account Label"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"n_tables":{"type":"integer","title":"N Tables","default":0},"n_simulations":{"type":"integer","title":"N Simulations","default":0},"n_favorites":{"type":"integer","title":"N Favorites","default":0}},"type":"object","required":["id","email","sub_account_label","created_at","last_login"],"title":"SubAccountResponse"},"SubscriptionStatus":{"properties":{"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"current_period_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Period End"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End"},"manageable":{"type":"boolean","title":"Manageable"},"has_active":{"type":"boolean","title":"Has Active"},"is_org_member":{"type":"boolean","title":"Is Org Member"},"is_org_owner":{"type":"boolean","title":"Is Org Owner"},"org_has_active":{"type":"boolean","title":"Org Has Active"},"account_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Plan"},"account_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Status"},"account_period_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Period End"},"account_cancel_at_period_end":{"type":"boolean","title":"Account Cancel At Period End"},"account_manageable":{"type":"boolean","title":"Account Manageable"},"folgeabo":{"anyOf":[{"$ref":"#/components/schemas/FolgeaboStand"},{"type":"null"}]},"account_folgeabo":{"anyOf":[{"$ref":"#/components/schemas/FolgeaboStand"},{"type":"null"}]}},"type":"object","required":["plan","status","current_period_end","cancel_at_period_end","manageable","has_active","is_org_member","is_org_owner","org_has_active","account_plan","account_status","account_period_end","account_cancel_at_period_end","account_manageable"],"title":"SubscriptionStatus"},"SupportAccessActive":{"properties":{"granted_at":{"type":"string","format":"date-time","title":"Granted At"},"valid_until":{"type":"string","format":"date-time","title":"Valid Until"},"granted_via":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted Via"},"consent_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Consent Version"}},"type":"object","required":["granted_at","valid_until"],"title":"SupportAccessActive"},"SupportAccessGrantBody":{"properties":{"duration":{"type":"string","enum":["1h","24h","7d"],"title":"Duration"}},"type":"object","required":["duration"],"title":"SupportAccessGrantBody"},"SupportAccessHistoryItem":{"properties":{"id":{"type":"integer","title":"Id"},"status":{"$ref":"#/components/schemas/Verlaufsstatus"},"requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Requested At"},"granted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Granted At"},"valid_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Valid Until"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"granted_via":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted Via"}},"type":"object","required":["id","status"],"title":"SupportAccessHistoryItem"},"SupportAccessRequestBody":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Reason"}},"type":"object","title":"SupportAccessRequestBody"},"SupportAccessRequestItem":{"properties":{"id":{"type":"integer","title":"Id"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["id","requested_at"],"title":"SupportAccessRequestItem"},"SupportAccessRequestResponse":{"properties":{"access":{"$ref":"#/components/schemas/AdminSupportAccessResponse"},"mail_sent":{"type":"boolean","title":"Mail Sent"}},"type":"object","required":["access","mail_sent"],"title":"SupportAccessRequestResponse"},"SupportAccessResponse":{"properties":{"active":{"anyOf":[{"$ref":"#/components/schemas/SupportAccessActive"},{"type":"null"}]},"request":{"anyOf":[{"$ref":"#/components/schemas/SupportAccessRequestItem"},{"type":"null"}]},"history":{"items":{"$ref":"#/components/schemas/SupportAccessHistoryItem"},"type":"array","title":"History"},"sessions":{"items":{"$ref":"#/components/schemas/SupportAccessSessionItem"},"type":"array","title":"Sessions"}},"type":"object","required":["history","sessions"],"title":"SupportAccessResponse"},"SupportAccessRevokeResponse":{"properties":{"ended_sessions":{"type":"integer","title":"Ended Sessions"}},"type":"object","required":["ended_sessions"],"title":"SupportAccessRevokeResponse"},"SupportAccessSessionItem":{"properties":{"id":{"type":"integer","title":"Id"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"admin_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Name"}},"type":"object","required":["id","started_at","expires_at"],"title":"SupportAccessSessionItem"},"SweepFortschritt":{"properties":{"status":{"type":"string","title":"Status"},"phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent"},"progress":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"start_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Time"},"elapsed_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elapsed Seconds"},"eta_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eta Seconds"},"result_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Result Id"},"warnings":{"anyOf":[{"items":{"$ref":"#/components/schemas/SweepWarnung"},"type":"array"},{"type":"null"}],"title":"Warnings"}},"type":"object","required":["status"],"title":"SweepFortschritt","description":"Stand des Portfolio-Sweeps einer Person — nur Codes, keine Sätze.\n\n`status` aus `sweep_fortschritt.ZUSTAENDE`, `phase` aus `PHASEN`, `reason`\naus `GRUENDE`. Den Satz dazu baut die Oberfläche."},"SweepWarnung":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"}},"type":"object","required":["isin","name","code"],"title":"SweepWarnung","description":"Ein Wertpapier, dem beim Start etwas fehlte (heute: Ausschüttungen)."},"SwitchBackResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"owner_id":{"type":"integer","title":"Owner Id"},"owner_email":{"type":"string","title":"Owner Email"}},"type":"object","required":["owner_id","owner_email"],"title":"SwitchBackResponse"},"SwitchToResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"sub_account_id":{"type":"integer","title":"Sub Account Id"},"sub_account_email":{"type":"string","title":"Sub Account Email"},"sub_account_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Account Label"}},"type":"object","required":["sub_account_id","sub_account_email","sub_account_label"],"title":"SwitchToResponse"},"TabellenAbgleichResponse":{"properties":{"securities_linked":{"type":"integer","title":"Securities Linked"},"funds_created":{"type":"integer","title":"Funds Created"},"securities_updated":{"type":"integer","title":"Securities Updated"},"prices_added":{"type":"integer","title":"Prices Added"},"dividends_added":{"type":"integer","title":"Dividends Added"},"errors":{"items":{"$ref":"#/components/schemas/AbgleichFehler"},"type":"array","title":"Errors"},"skipped":{"items":{"$ref":"#/components/schemas/AbgleichUebersprungen"},"type":"array","title":"Skipped"}},"type":"object","required":["securities_linked","funds_created","securities_updated","prices_added","dividends_added","errors","skipped"],"title":"TabellenAbgleichResponse","description":"Was „Alle Daten aktualisieren“ getan hat — Zähler und Codes, kein Satz.\n\nEin Gesamturteil (`success`) gibt es bewusst nicht mehr: Bis 15.09.2026\nstand dort `len(errors) < len(securities)` — Fehler je BEREICH gegen die\nZahl der WERTPAPIERE. Ein Papier ohne Kürzel ergab zwei „Fehler“ bei einem\nPapier, die Oberfläche zeigte „Fehler bei der Synchronisation“ und\nverschwieg, dass es verknüpft und 30 Kurse übernommen worden waren. Wie\ndie Meldung aussieht, entscheidet die Oberfläche aus den Zählern."},"TableDataStatusResponse":{"properties":{"table_id":{"type":"integer","title":"Table Id"},"table_name":{"type":"string","title":"Table Name"},"securities":{"items":{"$ref":"#/components/schemas/SecurityDataStatusResponse"},"type":"array","title":"Securities","default":[]},"update_available_count":{"type":"integer","title":"Update Available Count","default":0},"needs_migration_count":{"type":"integer","title":"Needs Migration Count","default":0},"can_sync_count":{"type":"integer","title":"Can Sync Count","default":0},"total_securities":{"type":"integer","title":"Total Securities","default":0}},"type":"object","required":["table_id","table_name"],"title":"TableDataStatusResponse"},"TableValidationResponse":{"properties":{"table_id":{"type":"integer","title":"Table Id"},"table_name":{"type":"string","title":"Table Name"},"overall_status":{"type":"string","title":"Overall Status"},"total_issues":{"type":"integer","title":"Total Issues"},"issues_summary":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Issues Summary","default":[]},"securities":{"items":{"$ref":"#/components/schemas/SecurityValidationResponse"},"type":"array","title":"Securities","default":[]},"distribution_upload_scopes":{"items":{"type":"string"},"type":"array","title":"Distribution Upload Scopes","default":[]}},"type":"object","required":["table_id","table_name","overall_status","total_issues"],"title":"TableValidationResponse"},"TarifwechselVorschau":{"properties":{"proration_cents":{"type":"integer","title":"Proration Cents"},"recurring_cents":{"type":"integer","title":"Recurring Cents"},"interval":{"type":"string","title":"Interval"},"currency":{"type":"string","title":"Currency"}},"type":"object","required":["proration_cents","recurring_cents","interval","currency"],"title":"TarifwechselVorschau","description":"Was ein Tarifwechsel kostet — beide Beträge in Cent der Abo-Währung."},"TeamInfo":{"properties":{"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id"},"organization_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Name"},"is_owner":{"type":"boolean","title":"Is Owner","default":false},"member_count":{"type":"integer","title":"Member Count","default":0}},"type":"object","title":"TeamInfo","description":"Team/Organisation-Info für Benutzer"},"TestdatenSetzen":{"properties":{"drin":{"type":"boolean","title":"Drin"}},"additionalProperties":false,"type":"object","required":["drin"],"title":"TestdatenSetzen","description":"Ob dieses Wertpapier zu den Testdaten der Plattform gehört."},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In"},"user":{"$ref":"#/components/schemas/UserResponse"}},"type":"object","required":["access_token","expires_in","user"],"title":"TokenResponse"},"TotpActivateRequest":{"properties":{"secret":{"type":"string","maxLength":64,"minLength":16,"title":"Secret"},"code":{"type":"string","maxLength":10,"minLength":6,"title":"Code"},"password":{"type":"string","maxLength":200,"minLength":1,"title":"Password"}},"type":"object","required":["secret","code","password"],"title":"TotpActivateRequest"},"TotpAktivierung":{"properties":{"secret":{"type":"string","title":"Secret"},"code":{"type":"string","maxLength":10,"title":"Code"}},"type":"object","required":["secret","code"],"title":"TotpAktivierung"},"TotpSetupResponse":{"properties":{"secret":{"type":"string","title":"Secret"},"otpauth_uri":{"type":"string","title":"Otpauth Uri"},"qr_code_base64":{"type":"string","title":"Qr Code Base64"}},"type":"object","required":["secret","otpauth_uri","qr_code_base64"],"title":"TotpSetupResponse"},"TouchpointCreate":{"properties":{"visitor_id":{"type":"string","maxLength":64,"minLength":8,"title":"Visitor Id"},"source":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Source"},"medium":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Medium"},"campaign":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Campaign"},"term":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Term"},"content":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Content"},"referrer":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Referrer"},"landing_page":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Landing Page"},"gclid":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Gclid"},"fbclid":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Fbclid"}},"type":"object","required":["visitor_id"],"title":"TouchpointCreate","description":"Einzelner Touchpoint vom Frontend (mit Consent erfasst)."},"TranslateBatchRequest":{"properties":{"engine":{"type":"string","title":"Engine","default":"claude"},"keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keys"},"overwrite":{"type":"boolean","title":"Overwrite","default":false},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"}},"type":"object","title":"TranslateBatchRequest"},"TranslateBody":{"properties":{"text":{"type":"string","title":"Text"},"source_language":{"type":"string","title":"Source Language","default":"de"}},"type":"object","required":["text"],"title":"TranslateBody"},"TranslationKeyCreate":{"properties":{"key":{"type":"string","title":"Key"},"default_text":{"type":"string","title":"Default Text"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"max_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Length"}},"type":"object","required":["key","default_text"],"title":"TranslationKeyCreate"},"TranslationUpdate":{"properties":{"text":{"type":"string","title":"Text"},"is_reviewed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Reviewed"}},"type":"object","required":["text"],"title":"TranslationUpdate"},"TwelvedataKeyStatusResponse":{"properties":{"configured":{"type":"boolean","title":"Configured"},"masked_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Masked Key"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"credits_je_minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Je Minute"},"nutzer_reserve_prozent":{"type":"integer","title":"Nutzer Reserve Prozent","default":0}},"type":"object","required":["configured"],"title":"TwelvedataKeyStatusResponse","description":"Zustand des hinterlegten Anbieter-Schluessels von Twelve Data."},"UebergangAnfrage":{"properties":{"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"},"transfer_reference":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Transfer Reference"}},"type":"object","title":"UebergangAnfrage"},"Uebersicht":{"properties":{"geprueft_am":{"type":"string","format":"date-time","title":"Geprueft Am"},"nutzer":{"$ref":"#/components/schemas/NutzerZeile"},"marktdaten":{"$ref":"#/components/schemas/MarktdatenZeile"},"betrieb":{"$ref":"#/components/schemas/BetriebZeile"},"erscheinungsbild":{"$ref":"#/components/schemas/ErscheinungsbildZeile"},"sprachen":{"$ref":"#/components/schemas/SprachenZeile"},"akquise":{"$ref":"#/components/schemas/MarketingZeile"}},"type":"object","required":["geprueft_am","nutzer","marktdaten","betrieb","erscheinungsbild","sprachen","akquise"],"title":"Uebersicht"},"UpdateSettingsRequest":{"properties":{"display_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Currency"},"darstellung":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Darstellung"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"show_in_country_ranking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show In Country Ranking"},"marketing_consent":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Marketing Consent"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"leaderboard_display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Leaderboard Display"}},"type":"object","title":"UpdateSettingsRequest"},"UserActivityItem":{"properties":{"id":{"type":"integer","title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"action":{"type":"string","title":"Action"},"actor_id":{"type":"integer","title":"Actor Id"},"actor_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Email"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"resource_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resource Id"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"}},"type":"object","required":["id","timestamp","action","actor_id"],"title":"UserActivityItem","description":"Feldnamen wie FLEET_ADMIN_SPEC §4.1 — `timestamp`, nicht `created_at`."},"UserActivityPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserActivityItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"}},"type":"object","required":["items","total","page","per_page"],"title":"UserActivityPage"},"UserDetailResponse":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"is_active":{"type":"boolean","title":"Is Active"},"is_admin":{"type":"boolean","title":"Is Admin"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"public_blocked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Public Blocked At"},"public_blocked_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Blocked By Name"},"is_test":{"type":"boolean","title":"Is Test","default":false},"display_currency":{"type":"string","title":"Display Currency"},"stats":{"$ref":"#/components/schemas/UserStats"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamInfo"},{"type":"null"}]},"subscription_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Plan"},"plan_source":{"type":"string","title":"Plan Source","default":"stripe"},"manual_plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Manual Plan Until"},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"subscription_cancel_at_period_end":{"type":"boolean","title":"Subscription Cancel At Period End","default":false},"has_active_stripe_subscription":{"type":"boolean","title":"Has Active Stripe Subscription","default":false}},"type":"object","required":["id","email","created_at","is_active","is_admin","display_currency","stats"],"title":"UserDetailResponse"},"UserListItem":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"is_active":{"type":"boolean","title":"Is Active"},"is_admin":{"type":"boolean","title":"Is Admin"},"public_blocked":{"type":"boolean","title":"Public Blocked","default":false},"is_test":{"type":"boolean","title":"Is Test","default":false},"stats":{"$ref":"#/components/schemas/UserStats"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamInfo"},{"type":"null"}]},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"subscription_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Plan"},"plan_source":{"type":"string","title":"Plan Source","default":"stripe"}},"type":"object","required":["id","email","created_at","is_active","is_admin","stats"],"title":"UserListItem"},"UserNoteCreate":{"properties":{"text":{"type":"string","maxLength":10000,"title":"Text"},"tag_ids":{"items":{"type":"integer"},"type":"array","title":"Tag Ids","default":[]}},"type":"object","required":["text"],"title":"UserNoteCreate"},"UserNoteItem":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"text":{"type":"string","title":"Text"},"author_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Author Id"},"author_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"tags":{"items":{"$ref":"#/components/schemas/NoteTagItem"},"type":"array","title":"Tags"}},"type":"object","required":["id","user_id","text","created_at","tags"],"title":"UserNoteItem"},"UserNoteUpdate":{"properties":{"text":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Text"},"tag_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Tag Ids"}},"type":"object","title":"UserNoteUpdate"},"UserPlanUpdateRequest":{"properties":{"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"plan_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Source"},"manual_plan_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Manual Plan Until"}},"type":"object","title":"UserPlanUpdateRequest"},"UserResponse":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"type":"string","title":"Email"},"pending_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pending Email"},"role":{"type":"string","title":"Role"},"email_verified":{"type":"boolean","title":"Email Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"display_currency":{"type":"string","title":"Display Currency"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"darstellung":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Darstellung"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"leaderboard_display":{"type":"string","title":"Leaderboard Display","default":"anonymous"},"phone_verified":{"type":"boolean","title":"Phone Verified","default":false},"has_phone":{"type":"boolean","title":"Has Phone","default":false},"totp_enabled":{"type":"boolean","title":"Totp Enabled","default":false},"sms_2fa_enabled":{"type":"boolean","title":"Sms 2Fa Enabled","default":false},"has_password":{"type":"boolean","title":"Has Password","default":false},"recovery_codes_left":{"type":"integer","title":"Recovery Codes Left","default":0},"opened_guides":{"items":{"type":"string"},"type":"array","title":"Opened Guides"},"is_admin":{"type":"boolean","title":"Is Admin"},"can_api_import":{"type":"boolean","title":"Can Api Import"},"can_excel_export":{"type":"boolean","title":"Can Excel Export"},"can_leaderboard_participate":{"type":"boolean","title":"Can Leaderboard Participate"},"max_tables":{"type":"integer","title":"Max Tables"},"simulations_per_day":{"type":"integer","title":"Simulations Per Day"},"credits_per_month":{"type":"integer","title":"Credits Per Month"},"acting_as_sub_account_of_owner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Acting As Sub Account Of Owner Id"},"acting_as_sub_account_owner_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acting As Sub Account Owner Email"},"sub_account_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Account Label"}},"type":"object","required":["id","email","role","email_verified","created_at","display_currency","language","country","is_admin","can_api_import","can_excel_export","can_leaderboard_participate","max_tables","simulations_per_day","credits_per_month"],"title":"UserResponse"},"UserRoleUpdate":{"properties":{"role_code":{"type":"string","title":"Role Code"}},"type":"object","required":["role_code"],"title":"UserRoleUpdate"},"UserSettingsResponse":{"properties":{"display_currency":{"type":"string","title":"Display Currency"},"darstellung":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Darstellung"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"show_in_country_ranking":{"type":"boolean","title":"Show In Country Ranking"},"marketing_consent":{"type":"boolean","title":"Marketing Consent"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"leaderboard_display":{"type":"string","title":"Leaderboard Display","default":"anonymous"}},"type":"object","required":["display_currency","language","country","show_in_country_ranking","marketing_consent"],"title":"UserSettingsResponse"},"UserStats":{"properties":{"tables_count":{"type":"integer","title":"Tables Count","default":0},"securities_count":{"type":"integer","title":"Securities Count","default":0},"results_count":{"type":"integer","title":"Results Count","default":0},"activities_count":{"type":"integer","title":"Activities Count","default":0},"last_activity":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity"}},"type":"object","title":"UserStats"},"UserUpdateRequest":{"properties":{"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Admin"},"public_blocked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Public Blocked"},"is_test":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Test"}},"type":"object","title":"UserUpdateRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VergleichAntwort":{"properties":{"tage":{"items":{"type":"string"},"type":"array","title":"Tage"},"reihen":{"items":{"$ref":"#/components/schemas/VergleichReihe"},"type":"array","title":"Reihen"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"ende":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ende"},"begrenzt_durch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Begrenzt Durch"},"fehlend":{"items":{"$ref":"#/components/schemas/VergleichFehlend"},"type":"array","title":"Fehlend"},"waehrung":{"type":"string","title":"Waehrung"}},"type":"object","required":["tage","reihen","start","ende","begrenzt_durch","fehlend","waehrung"],"title":"VergleichAntwort","description":"Mehrere Wertpapiere in einem Chart (`services/watchlist_vergleich.py`)."},"VergleichFehlend":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"grund":{"type":"string","enum":["keine_kurse","ausschuettung_nicht_umrechenbar","ausserhalb_fenster"],"title":"Grund"}},"type":"object","required":["isin","name","grund"],"title":"VergleichFehlend"},"VergleichReihe":{"properties":{"isin":{"type":"string","title":"Isin"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"werte":{"items":{"type":"number"},"type":"array","title":"Werte"}},"type":"object","required":["isin","name","werte"],"title":"VergleichReihe"},"Verlaufsstatus":{"type":"string","enum":["expired","lapsed","declined","revoked"],"title":"Verlaufsstatus","description":"Wie eine VERGANGENE Zeile in der Übersicht heißt.\n\nDie Datenbank kennt nur vier Zustände; „Frist vorbei“ und „nie beantwortet“\nsind keine Handlung, sondern Zeitablauf, und stehen deshalb nur hier."},"VermoegensPunkt":{"properties":{"date":{"type":"string","title":"Date"},"vermoegen":{"type":"number","title":"Vermoegen"},"eingezahlt":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eingezahlt"}},"type":"object","required":["date","vermoegen"],"title":"VermoegensPunkt","description":"Ein Tag des Vermögensverlaufs mit Plan — Beträge in EUR."},"VermoegensVerlauf":{"properties":{"punkte":{"items":{"$ref":"#/components/schemas/VermoegensPunkt"},"type":"array","title":"Punkte"},"rentenbeginn_am":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rentenbeginn Am"}},"type":"object","required":["punkte"],"title":"VermoegensVerlauf","description":"Der Vermögensverlauf eines Portfolios MIT Plan (Sparplan und/oder\nEntnahme) — leer ohne Plan. `rentenbeginn_am` nur nach einer Ansparphase."},"VerteilungSetzen":{"properties":{"art":{"type":"string","title":"Art"},"werte":{"additionalProperties":{"type":"number"},"type":"object","title":"Werte"}},"type":"object","required":["art","werte"],"title":"VerteilungSetzen","description":"Eine Verteilung als Name → Prozent. Leeres Wörterbuch löscht sie."},"VerteilungZuordnungSetzen":{"properties":{"dimension":{"type":"string","title":"Dimension"},"name":{"type":"string","title":"Name"},"ziel":{"type":"string","title":"Ziel"}},"type":"object","required":["dimension","name","ziel"],"title":"VerteilungZuordnungSetzen"},"WaehrungsGruppe":{"properties":{"key":{"type":"string","title":"Key"},"label_default":{"type":"string","title":"Label Default"},"codes":{"items":{"type":"string"},"type":"array","title":"Codes"}},"type":"object","required":["key","label_default","codes"],"title":"WaehrungsGruppe","description":"Eine Region im Währungs-Umschalter.\n\n`label_default` ist der deutsche Vorgabetext zu `key` — das Frontend\nübersetzt mit `t(key, label_default)`, wie bei jedem anderen Text auch."},"WartelisteOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WartelisteZeile"},"type":"array","title":"Items"},"confirmed_count":{"type":"integer","title":"Confirmed Count"},"pending_count":{"type":"integer","title":"Pending Count"},"by_plan":{"items":{"$ref":"#/components/schemas/PlanZahl"},"type":"array","title":"By Plan"}},"type":"object","required":["items","confirmed_count","pending_count","by_plan"],"title":"WartelisteOut"},"WartelisteZeile":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"locale":{"type":"string","title":"Locale"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"confirmed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Confirmed At"},"private_address":{"type":"boolean","title":"Private Address"}},"type":"object","required":["id","email","plan","source","locale","created_at","confirmed_at","private_address"],"title":"WartelisteZeile"},"WebhookDeliveryOut":{"properties":{"id":{"type":"integer","title":"Id"},"subscription_id":{"type":"integer","title":"Subscription Id"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"event_type":{"type":"string","title":"Event Type"},"attempt":{"type":"integer","title":"Attempt"},"status":{"type":"string","title":"Status"},"response_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Response Code"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"}},"type":"object","required":["id","subscription_id","event_id","event_type","attempt","status","created_at"],"title":"WebhookDeliveryOut"},"WebhookSubscriptionCreated":{"properties":{"id":{"type":"integer","title":"Id"},"url":{"type":"string","title":"Url"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_success_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Success At"},"last_failure_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Failure At"},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"},"secret":{"type":"string","title":"Secret"}},"type":"object","required":["id","url","events","is_active","created_at","secret"],"title":"WebhookSubscriptionCreated"},"WebhookSubscriptionIn":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"events":{"items":{"type":"string"},"type":"array","title":"Events","default":["*"]}},"type":"object","required":["url"],"title":"WebhookSubscriptionIn"},"WebhookSubscriptionOut":{"properties":{"id":{"type":"integer","title":"Id"},"url":{"type":"string","title":"Url"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_success_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Success At"},"last_failure_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Failure At"},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"}},"type":"object","required":["id","url","events","is_active","created_at"],"title":"WebhookSubscriptionOut"},"WeiterleitungResponse":{"properties":{"weiterleiten":{"type":"boolean","title":"Weiterleiten"}},"type":"object","required":["weiterleiten"],"title":"WeiterleitungResponse","description":"Ob die Anmeldung jetzt zur Kasse führen darf (höchstens einmal je Wahl)."},"WhitelabelBranding":{"properties":{"brand_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}],"title":"Brand Color"},"brand_company_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Brand Company Name"}},"type":"object","title":"WhitelabelBranding"},"WhitelabelResponse":{"properties":{"has_whitelabel":{"type":"boolean","title":"Has Whitelabel"},"brand_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Logo Url"},"brand_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Color"},"brand_company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Company Name"}},"type":"object","required":["has_whitelabel","brand_logo_url","brand_color","brand_company_name"],"title":"WhitelabelResponse"},"ZeitraumKennzahlen":{"properties":{"cagr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cagr"},"volatility":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volatility"},"max_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Drawdown"},"max_drawdown_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Drawdown Period"},"sharpe_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sharpe Ratio"},"sortino_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sortino Ratio"},"calmar_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Calmar Ratio"},"sterling_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sterling Ratio"},"martin_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Martin Ratio"},"recovery_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recovery Ratio"},"ulcer_index":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ulcer Index"},"beta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Beta"},"alpha":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Alpha"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"years":{"type":"number","title":"Years"}},"type":"object","required":["start_date","end_date","years"],"title":"ZeitraumKennzahlen"},"ZeitverlaufAntwort":{"properties":{"zeitraeume":{"items":{"type":"string"},"type":"array","title":"Zeitraeume"},"angebot":{"items":{"type":"string"},"type":"array","title":"Angebot"},"vorgabe":{"items":{"type":"string"},"type":"array","title":"Vorgabe"},"hoechstens":{"type":"integer","title":"Hoechstens"},"currency":{"type":"string","title":"Currency"},"risk_free_rate":{"type":"number","title":"Risk Free Rate"},"werte":{"additionalProperties":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/ZeitraumKennzahlen"},{"type":"null"}]},"type":"object"},"type":"object","title":"Werte"}},"type":"object","required":["zeitraeume","angebot","vorgabe","hoechstens","currency","risk_free_rate","werte"],"title":"ZeitverlaufAntwort","description":"Kennzahlen je Wertpapier und Zeitraum.\n\n`werte` ist je Merklisten-Eintrag (`id` als Text) je Zeitraum gefuellt —\n`null` heisst: Die Kurshistorie deckt den Zeitraum nicht ganz ab. Ein\nEintrag ohne Waehrung oder ohne Kurse fehlt ganz; die Karte sagt das\nschon an anderer Stelle."},"ZeitverlaufEinstellung":{"properties":{"an":{"type":"boolean","title":"An"},"zeitraeume":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Zeitraeume"},"zugeklappt":{"items":{"type":"integer"},"type":"array","maxItems":2000,"title":"Zugeklappt"},"kachel":{"anyOf":[{"type":"integer","maximum":3.0,"minimum":1.0},{"type":"null"}],"title":"Kachel"}},"type":"object","required":["an","zeitraeume","zugeklappt"],"title":"ZeitverlaufEinstellung","description":"Der Zeitverlauf einer Sicht: eingeblendet, welche Spalten, welche Karten zu.\n\n`zugeklappt` sind Kennungen der Karten (Merklisten-Eintraege), deren\nAbschnitt der Nutzer einzeln zugeklappt hat — gemerkt, damit er nach dem\nNeuladen nicht wieder offen steht."},"ZeitverlaufEinstellungen":{"properties":{"einstellungen":{"additionalProperties":{"$ref":"#/components/schemas/ZeitverlaufEinstellung"},"type":"object","title":"Einstellungen"},"angebot":{"items":{"type":"string"},"type":"array","title":"Angebot"},"vorgabe":{"items":{"type":"string"},"type":"array","title":"Vorgabe"},"hoechstens":{"type":"integer","title":"Hoechstens"},"kachel_vorgabe":{"items":{"type":"string"},"type":"array","title":"Kachel Vorgabe"},"kachel_hoechstens":{"type":"integer","title":"Kachel Hoechstens"}},"type":"object","required":["einstellungen","angebot","vorgabe","hoechstens","kachel_vorgabe","kachel_hoechstens"],"title":"ZeitverlaufEinstellungen","description":"Der Stand je Sicht — und was sich waehlen laesst.\n\n`angebot`, `vorgabe` und `hoechstens` stehen in der Antwort, damit die\nOberflaeche keine zweite Liste pflegt: Sie boete sonst irgendwann einen\nZeitraum an, den die Rechnung ablehnt."},"_ResultChartRequest":{"properties":{"distribution":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution"},"isin_mapping":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Isin Mapping"}},"type":"object","required":["distribution"],"title":"_ResultChartRequest"},"_ResultVermoegenRequest":{"properties":{"distribution":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution"},"isin_mapping":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Isin Mapping"},"rebalancing":{"type":"string","title":"Rebalancing","default":"no_rebalancing"}},"type":"object","required":["distribution"],"title":"_ResultVermoegenRequest"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/auth/login"}}}}},"servers":[{"url":"https://www.paperball.finance"}]}