<?php require_once __DIR__ . '/engine/engine.php'; ?>
<?php require_once __DIR__ . '/engine/api-handling/api_helpers.php'; ?>
<?php require_once __DIR__ . '/views/header.php'; ?>
<?php require_once __DIR__ . '/views/navigation.php'; ?>

<main class="flex-grow-1">
  <div class="container my-5">
	
	<div class="row">
		<div class="col-md-12">
			<?php
			$riskWillingnessMax = 10;
			$riskAbilityMax = 11;
		
			// Ergebnis speichern
			if ($_SERVER['REQUEST_METHOD'] === 'POST') {
				$riskWillingnessScore = $_POST['riskWillingnessScore'] ?? 0;
				$riskAbilityScore = $_POST['riskAbilityScore'] ?? 0;
		
				$stmt = $pdo->prepare("
					REPLACE INTO risikoprofile (id, datum, risk_willingness_score, risk_willingness_max, risk_ability_score, risk_ability_max)
					VALUES (1, NOW(), :wScore, :wMax, :aScore, :aMax)
				");
				$stmt->execute([
					':wScore' => $riskWillingnessScore,
					':wMax'   => 10,
					':aScore' => $riskAbilityScore,
					':aMax'   => 10
				]);
			}
			
			function getRiskAbilityRecommendation($score) {
				if ($score <= 3) {
					return <<<HTML
			<h6>Empfohlene Monatsvolatilität: 5–7%</h6> 
			<ul class="mb-0">
			<li>Cash (Geldmarktfonds)</li>
			<li>US-Staatsanleihen</li>
			<li>Hochqualitative Unternehmensanleihen</li>
			<li>Kleine Positionen im MSCI World-ETF, S&P500 ETF (max. 10–20%)</li>
			<li>Gold</li>
			<li>Bei Risikolevel 3: Sektor-ETF und BlueChip-Aktien</li>
			<li>Bei Risikolevel 1–2: Landes-ETF sowie mehr Cash und Gold</li>
			</ul>
			HTML;
				} elseif ($score >= 4 && $score <= 7) {
					return <<<HTML
			<h6>Empfohlene Monatsvolatilität: 11–14%</h6> 
			<ul class="mb-0">
			<li>Aktien mit Marktkapitalisierung von mindestens 3–4 Mrd. USD</li>
			<li>Alle Länder-ETFs weltweit</li>
			<li>Alle Sektor-ETFs (z. B. Energie, Grundstoffe, Industrie)</li>
			<li>Immobilien-ETFs</li>
			<li>Gold- und Silber-Minenaktien</li>
			<li>Dividenden-Aktien</li>
			<li>Diverse Anlagefonds</li>
			<li>Bitcoin (1–10%)</li>
			<li>Bei Risikolevel 4: Aktien mit Marktkapitalisierung 10 Mrd. USD und mehr</li>
			<li>Bei Risikolevel 7: Aktien mit Marktkapitalisierung 2 Mrd. USD und mehr</li>
			</ul>
			HTML;
				} elseif ($score >= 8) {
					return <<<HTML
			<h6>Empfohlene Monatsvolatilität: 20%</h6> 
			<ul class="mb-0">
			<li>Futures in Rohstoffen</li>
			<li>Short-Positionen</li>
			<li>Alle Aktien ab Marktkapitalisierung 2 Mrd. USD</li>
			<li>Bei Risikolevel 8: Beimischung von Futures (Rohstoff-Derivate)</li>
			<li>Bei Risikolevel 10: Kalkulierte Risiken mit allen Instrumenten</li>
			</ul>
			HTML;
				}
				return "<p>Keine Empfehlung verfügbar.</p>";
			}
		
			// Letzten Eintrag laden
			$latest = $pdo->query("SELECT * FROM risikoprofile ORDER BY datum DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC);
		
			if ($latest) {
				$scoreWilling = (float)$latest['risk_willingness_score'];
				$scoreAbility = (float)$latest['risk_ability_score'];
			
				// Farblogik
				function riskColor($score) {
					if ($score <= 3.9) return 'bg-success';
					if ($score <= 7.9) return 'bg-warning';
					return 'bg-danger';
				}
			
				echo "<h4 class='mb-0'>Aktuelles Risikoprofil</h4>";
				echo "<small>Zuletzt erstellt: {$latest['datum']}</small>";
			
				// RISIKOBEREITSCHAFT
				echo "<h6 class='mt-4'>Risikobereitschaft: <strong>{$scoreWilling} / 10</strong></h6>";
				echo "<div class='progress mb-3' style='height: 24px;'>";
				echo "<div class='progress-bar " . riskColor($scoreWilling) . "' role='progressbar' style='width: " . ($scoreWilling * 10) . "%;' aria-valuenow='{$scoreWilling}' aria-valuemin='0' aria-valuemax='10'>{$scoreWilling}</div>";
				echo "</div>";
			
				// RISIKOFÄHIGKEIT
				echo "<h6>Risikofähigkeit: <strong>{$scoreAbility} / 11</strong></h6>";
				echo "<div class='progress mb-3' style='height: 24px;'>";
				echo "<div class='progress-bar " . riskColor($scoreAbility) . "' role='progressbar' style='width: " . ($scoreAbility * 10) . "%;' aria-valuenow='{$scoreAbility}' aria-valuemin='0' aria-valuemax='10'>{$scoreAbility}</div>";
			
				echo "</div>";
			}
			?>
			<div class="mb-5">
				<a class="btn btn-dark mb-2" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
					Risikoempfehlungen
				</a>
				<div class="collapse" id="collapseExample">
					<div class="card card-body">
						<?= getRiskAbilityRecommendation($scoreAbility); ?>
					</div>
				</div>
			</div>
			
		</div>
	</div>

	<div class="sticky-header">
	  <h1 class="mb-4 fs-3">Risikobereitschaft & Risikofähigkeit Fragebögen</h1>
	  <div class="progress mb-2" style="height: 25px;">
		<div id="progressBar" class="progress-bar bg-danger" role="progressbar" style="width: 0%;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
	  </div>
	  <div class="text-end" id="progressCount">0 von 21 beantwortet</div>
	</div>

	<form id="riskForm" class="mt-4" method="post">
	  <input type="hidden" name="riskWillingnessScore" id="riskWillingnessScore">
	  <input type="hidden" name="riskAbilityScore" id="riskAbilityScore">

	  <div class="form-section">
		<h2 class="h4 mb-3">Risikobereitschaft</h2>
		<div id="riskWillingness"></div>
	  </div>

	  <div class="form-section">
		<h2 class="h4 mb-3">Risikofähigkeit</h2>
		<div id="riskAbility"></div>
	  </div>

	  <div class="d-grid gap-2">
		<button type="submit" class="btn btn-dark btn-lg">Auswertung speichern</button>
	  </div>
	</form>
  </div>
	
	<script>
	(function () {
	  if (window.riskProfileScriptLoaded) return;
	  window.riskProfileScriptLoaded = true;
	
	  const riskWillingnessQuestions = [
		{
		  q: "Welche Anlageziele verfolgst du?",
		  options: [
			"Vermögenschutz und Kapitalerhalt.",
			"Maximalen Profit mit den Zyklen erzielen.",
			"Ich möchte den S&P500 schlagen.",
			"Mir ist bewusst, dass die Inflation mein erspartes Vermögen auffrisst und bin deswegen bereit, deutlich höhere Risiken einzugehen! Ich verliere das Geld ja sonst sowieso."
		  ],
		  scores: [3, 10, 6, 8]
		},
		{
		  q: "Welche Auszahlungsvariante würdest du vorziehen?",
		  options: [
			"100.000€ sofort aber 1 Jahr blockiert.",
			"Lieber 110.000€ in 2 Jahren.",
			"140.000€ in 5 Jahren.",
			"90.000€ sofort ab heute."
		  ],
		  scores: [2, 5, 7, 1]
		},
		{
		  q: "Hast du bereits Erfahrung mit Aktien?",
		  options: [
			"Ja, ich habe viel Erfahrung mit Aktien.",
			"Ich habe paar Mal irgendwelche Aktien gekauft. Ich kenne mich aber nicht wirklich damit aus.",
			"Aktien sind langweilig, ich kaufe Kryptowährungen.",
			"Ich vertraue dem Aktienmarkt nicht mehr und kaufe daher keine Aktien.",
			"Ich habe noch nie eine Aktie gekauft."
		  ],
		  scores: [8, 6, 10, 2, 1]
		},
		{
		  q: "Dein Portfolio entwickelte sich im ersten Jahr fantastisch und du bist 35% im Gewinn. Was machst du?",
		  options: [
			"Ich verkaufe das ganze Portfolio und freue mich über die schönen Gewinne.",
			"Ich verkaufe einen Teil meines Gewinnes und freue mich.",
			"Ich suche mir die Gewinnerpositionen raus und erhöhe diese gegebenenfalls.",
			"Ich verkaufe die Gewinnerpositionen und schichte sie in die Verlustpositionen um, damit das Portfolio „rebalanced“ ist.",
			"Ich mache gar nichts und halte einfach alle Positionen weiterhin."
		  ],
		  scores: [1, 3, 9, 10, 5]
		},
		{
		  q: "Du hast 100.000€ Ersparnisse und bekommst folgendes Spiel vorgeschlagen: Du hast 3 Zylinder Hüte vor dir stehen. In einem der Zylinder befinden sich 10.000€. In den anderen beiden ist nichts und du musst 4.990€ bezahlen, falls du einen der beiden erwischst! Nimmst du am Spiel teil?",
		  options: [
			"Nein auf keinen Fall. Das Spiel lohnt sich nicht für mich, auch wenn ich es mir leisten könnte! Der Risk/Reward ist zu schlecht! Es gibt bessere Möglichkeiten Geld zu verdienen.",
			"Ja das Spiel ist schlagbar, ich nehme das Spiel an.",
			"Das Spiel ist mathematisch ein Verlustgeschäft, daher spiele ich nicht mit, obwohl ich es mir leisten könnte, 1-2 Runden zu spielen.",
			"Das Spiel ist kompliziert, aber ich kann dabei gewinnen."
		  ],
		  scores: [5, 10, 1, 10]
		},
		{
		  q: "Dein Portfolio ist nach nur 3 Monaten schon -15% im Minus und du hast bereits einen Jahreslohn verloren. Wie reagierst du?",
		  options: [
			"Ich habe meine monatliche Portfolio-Volatilität berechnet und bin mir bewusst, dass mein Portfolio 20% pro Monat schwanken kann. Ich bleibe ruhig und mache erstmal gar nichts. Die fundamentale Lage hat sich nicht geändert.",
			"Ich habe meine monatliche Portfolio-Volatilität berechnet und bin mir bewusst, dass mein Portfolio 10% pro Monat schwanken kann. Ich bleibe ruhig und mache erstmal gar nichts. Die charttechnische Situation hat sich nicht geändert.",
			"Ich verkaufe sofort 50% und reduziere das Risiko, 15% Verlust in 3 Monaten ist einfach zu viel.",
			"Ich verkaufe alles und höre mit der Börse auf!",
			"Solange sich die fundamentale & technische Lage des Marktes nicht verändert hat, mache ich gar nichts. Ich habe im Vorfeld meine Risiken klar abgesteckt und bleibe ruhig und professionell."
		  ],
		  scores: [5, 10, 2, 1, 5]
		},
		{
		  q: "Wie wichtig ist für dich ein konstanter Cashflow?",
		  options: [
			"Nicht so wichtig. Ich möchte mit den Investitionen Geld verdienen.",
			"Cashflow ist für mich das Wichtigste. Noch wichtiger als die Investitionen.",
			"Meine Ausgaben sind äußerst gering, der Cashflow ist in meiner Situation nicht so wichtig.",
			"Ein höherer Cashflow erlaubt mir höhere Risiken einzugehen."
		  ],
		  scores: [10, 3, 6, 3]
		},
		{
		  q: "Ist Risiko für dich etwas Gutes oder Schlechtes?",
		  options: [
			"Ich meide das Risiko und liebe die Sicherheit.",
			"Kalkulierte Risiken sind in Ordnung. Mir ist wichtig, dass ich nicht alles verliere.",
			"Ich liebe das Risiko und den Nervenkitzel.",
			"Höhere Volatilität und fallende Märkte bereiten mir Sorgen."
		  ],
		  scores: [2, 6, 10, 1]
		},
		{
		  q: "Welche Anlage bevorzugst du?",
		  options: [
			"Du bekommst sichere 3% pro Jahr, konstant.",
			"Du bekommst im Durchschnitt 6% pro Jahr über einen Zeitraum von 5 Jahren, musst aber mit mindestens einem Verlustjahr rechnen.",
			"Du bekommst 50% in 5 Jahren, bist aber 4 Jahre nonstop mit 20–30% im Verlust! Alle Gewinne kommen erst im Jahr 5.",
			"Ganz egal welche Anlageform, ich will mein Geld verzehnfachen in den nächsten 5 Jahren!"
		  ],
		  scores: [2, 6, 10, 10]
		},
		{
		  q: "Was hältst du von Optionsscheinen & Futures (= Derivate)?",
		  options: [
			"Das ist reiner Zock und nur etwas für Spekulanten!",
			"Ich handle selbst mit Optionen & Futures und finde es klasse.",
			"Ich habe viel Respekt vor Derivaten und fasse sie daher nicht an.",
			"Ich interessiere mich sehr für Optionen & Futures und möchte sehr gerne mehr darüber erfahren.",
			"Ich habe bereits ein Vermögen mit Optionen verloren."
		  ],
		  scores: [2, 10, 4, 7, 10]
		}
	  ];
	
	  const riskAbilityQuestions = [
		{
		  q: "Wie hoch ist deine monatliche Sparquote (Einkommen abzüglich aller Ausgaben)?",
		  options: [
			"10% vom Einkommen.",
			"Ich kann leider nichts sparen.",
			"30% vom Einkommen.",
			"50% vom Einkommen und höher! Ich kann sehr viel monatlich ansparen."
		  ],
		  scores: [2, 1, 5, 10]
		},
		{
		  q: "Hast du aktuell finanzielle Verpflichtungen?",
		  options: [
			"Ja, ich habe noch Schulden.",
			"Ja, ich habe ein Kind/mehrere Kinder, für die ich sorgen bzw. Unterhalt bezahlen muss.",
			"Nein, ich habe keinerlei finanzielle Verpflichtungen.",
			"Es gibt noch andere Verpflichtungen, die mich finanziell belasten."
		  ],
		  scores: [1, 3, 10, 3]
		},
		{
		  q: "Wie finanzierst du aktuell deinen Lebensunterhalt?",
		  options: [
			"Über mein monatliches Einkommen.",
			"Ich bekomme monatliche Rente.",
			"Mieteinkünfte und Dividendeneinkünfte.",
			"Ich lebe ausschließlich vom Ersparten.",
			"Durch Nebenjobs, die mich gerade so über Wasser halten."
		  ],
		  scores: [5, 3, 10, 1, 1]
		},
		{
		  q: "Was ist dein maximaler Anlagehorizont? Du solltest die investierte Summe innerhalb dieser Zeit nicht für andere Zwecke entwenden!",
		  options: [
			"Maximal 1 Jahr!",
			"1–3 Jahre.",
			"3–5 Jahre.",
			"5–10 Jahre.",
			"10 Jahre+"
		  ],
		  scores: [1, 3, 4, 7, 10]
		},
		{
		  q: "Besitzt du ein Eigenheim oder lebst du zur Miete?",
		  options: [
			"Ich lebe zur Miete.",
			"Ja, ich besitze ein Eigenheim mit Hypothek.",
			"Ja, ich besitze ein Eigenheim ohne Hypothek.",
			"Ich lebe kostenlos bei meinen Eltern/Freunden."
		  ],
		  scores: [5, 4, 7, 10]
		},
		{
		  q: "Wie sicher ist dein Job oder deine Unternehmung (als Unternehmer)?",
		  options: [
			"Die Lage ist instabil, es kann sich jeden Tag etwas ändern. Dann hätte ich ein Problem.",
			"Mein Job ist sicher, ich habe keine Angst vor einer unerwarteten Kündigung.",
			"Mein Unternehmen ist im Aufbau (Start-up) und die finanzielle Lage kann sich schnell ändern.",
			"Mein Unternehmen hat viele Reserven und einen großen Kundenstamm. Ich bin bereits 5 Jahre und länger als Unternehmer tätig.",
			"Ich habe mehrere Jobs gleichzeitig und bin daher gut diversifiziert. Verliere ich einen Job, bin ich nicht ganz arbeitslos und suche mir sofort einen Ersatz."
		  ],
		  scores: [1, 6, 2, 10, 7]
		},
		{
		  q: "Wie hoch ist dein Vermögen, das du investieren möchtest?",
		  options: [
			"1× mein Jahreseinkommen.",
			"3× mein Jahreseinkommen.",
			"7–10× mein Jahreseinkommen.",
			"Ich habe viel Geld geerbt und der Betrag ist weit höher als 10× meines Jahreseinkommens.",
			"Ich habe meine Immobilie/Unternehmensanteile verkauft und das Vermögen ist höher als 10× von meinem aktuellen Jahreseinkommen."
		  ],
		  scores: [10, 7, 3, 3, 3]
		},
		{
		  q: "Bist du für die nächsten 5 Jahre positiv gestimmt, was deine persönlichen finanziellen Verhältnisse angeht?",
		  options: [
			"Ja, sehr positiv! Mein Einkommen wird steigen und meine Verpflichtungen werden geringer.",
			"Ich blicke mit großer Sorge in die Zukunft.",
			"Ich verbessere gerade meine monatliche Kostenstruktur, sodass ich mehr sparen & investieren kann.",
			"Mein Einkommen wird sinken oder stark schwanken."
		  ],
		  scores: [8, 1, 5, 1]
		},
		{
		  q: "Falls sich deine Investitionen anders entwickeln sollten als erwartet, was hätte das für Auswirkungen auf dein Leben?",
		  options: [
			"Ich könnte einen Totalverlust locker wegstecken, da ich gut diversifiziert bin. Ich kann jederzeit neu anfangen.",
			"Ein Totalverlust meiner Investitionen wäre eine Katastrophe und hätte große Auswirkungen auf mein Leben. Es wäre nicht verkraftbar.",
			"Es wäre sehr schmerzhaft, aber ich bin kalkulierte Risiken eingegangen und mein Leben ändert sich dadurch nicht.",
			"Ich gehe stark davon aus, dass meine Investitionen gut laufen werden und kümmere mich nicht um den „Worst Case“, schließlich bin ich ja bei InvestinBest."
		  ],
		  scores: [10, 1, 5, 1]
		},
		{
		  q: "In welcher Altersgruppe befindest du dich aktuell?",
		  options: [
			"16–25",
			"25–35",
			"35–50",
			"50–60",
			"60+"
		  ],
		  scores: [10, 7, 6, 4, 3]
		},
		{
		  q: "Wie viele Jahre möchtest du noch in deinem Leben arbeiten?",
		  options: [
			"Max. 10 Jahre.",
			"5 Jahre.",
			"Mindestens 30 Jahre.",
			"Mindestens 20 Jahre. Ich arbeite gerne und werde voraussichtlich auch in der Pension weiterarbeiten."
		  ],
		  scores: [5, 2, 7, 10]
		}
	  ];
	
	  const riskWillingnessContainer = document.getElementById("riskWillingness");
		const riskAbilityContainer = document.getElementById("riskAbility");
		const form = document.getElementById("riskForm");
		const progressBar = document.getElementById("progressBar");
		const progressCount = document.getElementById("progressCount");
	  
		function renderQuestions(container, questions, prefix) {
		  questions.forEach((q, i) => {
			const div = document.createElement("div");
			div.classList.add("mb-4");
			div.innerHTML = `<p><strong>${i + 1}. ${q.q}</strong></p>` + q.options.map((opt, j) =>
			  `<div class="form-check">
				 <input class="form-check-input" type="radio" name="${prefix}_${i}" value="${q.scores[j]}" id="${prefix}_${i}_${j}">
				 <label class="form-check-label" for="${prefix}_${i}_${j}">${opt}</label>
			   </div>`
			).join("");
			container.appendChild(div);
		  });
		}
	  
		function updateProgress() {
		  const total = riskWillingnessQuestions.length + riskAbilityQuestions.length;
		  const answered = form.querySelectorAll('input[type="radio"]:checked').length;
		  const percent = Math.round((answered / total) * 100);
		  progressBar.style.width = `${percent}%`;
		  progressBar.innerText = `${percent}%`;
		  progressCount.innerText = `${answered} von ${total} beantwortet`;
		}
	  
		function getAverageScore(prefix, questions) {
		  const answered = questions.map((_, i) =>
			form.querySelector(`input[name="${prefix}_${i}"]:checked`)
		  ).filter(Boolean);
	  
		  const total = answered.reduce((sum, input) => sum + parseFloat(input.value), 0);
		  return answered.length > 0 ? (total / answered.length).toFixed(1) : 0;
		}
	  
		renderQuestions(riskWillingnessContainer, riskWillingnessQuestions, "w");
		renderQuestions(riskAbilityContainer, riskAbilityQuestions, "a");
		form.addEventListener("change", updateProgress);
	  
		form.addEventListener("submit", function (e) {
		  const willingnessScore = getAverageScore("w", riskWillingnessQuestions);
		  const abilityScore = getAverageScore("a", riskAbilityQuestions);
	  
		  document.getElementById("riskWillingnessScore").value = willingnessScore;
		  document.getElementById("riskAbilityScore").value = abilityScore;
		});
	  })();
	  </script>
	</main>
	  
	<?php require_once __DIR__ . '/views/footer.php'; ?>