prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch();
$startupId = $_GET['id'] ?? null;
if (!$startupId) {
header('Location: startups.php');
exit;
}
$stmt = db()->prepare("
SELECT s.*, fr.id as round_id, fr.funding_goal as active_goal, fr.funding_raised as active_raised, fr.status as round_status
FROM startups s
LEFT JOIN funding_rounds fr ON s.id = fr.startup_id AND fr.status = 'Active'
WHERE s.id = ?
");
$stmt->execute([$startupId]);
$startup = $stmt->fetch();
if (!$startup) {
die("Startup not found.");
}
// Check if user is the founder or an investor
$isFounder = ($_SESSION['user_id'] == $startup['founder_id']);
$isInvestor = ($user['role'] == 'investor');
$isAnyFounder = ($user['role'] == 'founder');
// Basic permissions check
// Allow if: is the founder, OR is an investor, OR is any founder (for partnership), OR startup is public
if (!$isFounder && !$isInvestor && !$isAnyFounder && $startup['status'] === 'private') {
die("You do not have permission to view this profile.");
}
// Check if following
$stmt = db()->prepare("SELECT 1 FROM startup_followers WHERE user_id = ? AND startup_id = ?");
$stmt->execute([$user_id, $startupId]);
$isFollowing = (bool)$stmt->fetch();
// Fetch funding history
$canSeeHistory = $isFounder || $isInvestor;
$fundingHistory = [];
if ($canSeeHistory) {
$stmt = db()->prepare("
SELECT i.*, u.full_name as investor_name, u.id as investor_user_id
FROM investments i
LEFT JOIN users u ON i.investor_id = u.id
WHERE i.startup_id = ? AND i.status != 'rejected'
ORDER BY i.created_at DESC
");
$stmt->execute([$startupId]);
$fundingHistory = $stmt->fetchAll();
}
// Check if the current user (investor) has an investment here
$myInvestment = null;
if ($isInvestor) {
$stmt = db()->prepare("SELECT * FROM investments WHERE investor_id = ? AND startup_id = ? AND status != 'rejected' LIMIT 1");
$stmt->execute([$user_id, $startupId]);
$myInvestment = $stmt->fetch();
}
// Fetch approved investments for dividends calculation (Founder only)
$approvedInvestments = [];
if ($isFounder) {
$stmt = db()->prepare("
SELECT i.*, u.full_name as investor_name
FROM investments i
JOIN users u ON i.investor_id = u.id
WHERE i.startup_id = ? AND i.status = 'approved'
");
$stmt->execute([$startupId]);
$approvedInvestments = $stmt->fetchAll();
}
// Fetch founders
$stmt = db()->prepare("SELECT id, full_name FROM users WHERE id = ?");
$stmt->execute([$startup['founder_id']]);
$founder = $stmt->fetch();
$platformName = defined('PLATFORM_NAME') ? PLATFORM_NAME : 'Gatsby';
// Calculate progress
$goal = $startup['active_goal'] ?: 0;
$raised = $startup['active_raised'] ?: 0;
$progress = ($goal > 0) ? round(($raised / $goal) * 100) : 0;
?>