<?php
// ─── POST /api/teams/update.php ──────────────────────────────────────────
define('ROOT', dirname(__DIR__, 2));
require_once ROOT . '/core/DB.php';
require_once ROOT . '/core/Response.php';
require_once ROOT . '/core/Auth.php';

Auth::require();
$db = DB::get();

$id      = (int)   ($_POST['record_id']       ?? 0);
$name    = trim($_POST['name']                ?? '');
$assets  = trim($_POST['assigned_assets']     ?? '');
$members = trim($_POST['team_members']        ?? '');
$status  = trim($_POST['status']              ?? 'ACTIVE');

if (!$id)   Response::error('record_id is required.');
if (!$name) Response::error('Team name is required.');

// Get old name so we can clear old members' team_id
$oldName = $db->scalar("SELECT name FROM teams WHERE record_id = ?", [$id]);

$db->run(
    "UPDATE teams SET name = ?, assigned_assets = ?, team_members = ?, status = ?
     WHERE  record_id = ?",
    [$name, $assets, $members, $status, $id]
);

// Clear old team memberships that are no longer in this team
$db->run("UPDATE users SET team_id = '' WHERE team_id = ? AND team_id != ?", [$oldName, $name]);

// Assign each current member
if ($members) {
    foreach (array_map('trim', explode(',', $members)) as $username) {
        if ($username) {
            $db->run("UPDATE users SET team_id = ? WHERE username = ?", [$name, $username]);
        }
    }
}

Response::ok(null, 'Team updated.');