<?php
// /public_html/erp.jewellersbd.com/api/cash/get_accounts.php

header("Content-Type: application/json; charset=UTF-8");

require_once __DIR__ . '/../../config/session.php';
require_once __DIR__ . '/../../config/db.php';

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

if (
    (!isset($_SESSION['user_id']) || empty($_SESSION['user_id'])) &&
    (!function_exists('is_logged_in') || !is_logged_in())
) {
    echo json_encode([
        "success" => false,
        "message" => "লগইন প্রয়োজন",
        "data" => null
    ], JSON_UNESCAPED_UNICODE);
    exit;
}

function normalize_account_name($name)
{
    $name = trim((string)$name);
    $lower = mb_strtolower($name, 'UTF-8');

    $map = [
        'showroom cash' => 'শোরুম ক্যাশ',
        'showroom নগদ' => 'শোরুম ক্যাশ',
        'শোরুম নগদ' => 'শোরুম ক্যাশ',
        'শোরুম cash' => 'শোরুম ক্যাশ',

        'factory cash' => 'ফ্যাক্টরি ক্যাশ',
        'factory নগদ' => 'ফ্যাক্টরি ক্যাশ',
        'ফ্যাক্টরি নগদ' => 'ফ্যাক্টরি ক্যাশ',
        'ফ্যাক্টরি cash' => 'ফ্যাক্টরি ক্যাশ',

        'locker cash' => 'লকার ক্যাশ',
        'locker নগদ' => 'লকার ক্যাশ',
        'লকার নগদ' => 'লকার ক্যাশ',
        'লকার cash' => 'লকার ক্যাশ',
    ];

    return $map[$lower] ?? $name;
}

$accounts = [];
$total_balance = 0;

$sql = "SELECT id, account_name, current_balance FROM cash_accounts ORDER BY id ASC";
$result = $conn->query($sql);

if ($result) {
    while ($row = $result->fetch_assoc()) {
        $balance = round((float)($row["current_balance"] ?? 0), 2);
        $account_name = normalize_account_name($row["account_name"] ?? '');

        $accounts[] = [
            "id" => (int)$row["id"],
            "account_name" => $account_name,
            "current_balance" => $balance
        ];

        $total_balance += $balance;
    }
}

echo json_encode([
    "success" => true,
    "message" => "অ্যাকাউন্টগুলি সফলভাবে লোড হয়েছে",
    "data" => [
        "accounts" => $accounts,
        "total_balance" => round($total_balance, 2)
    ]
], JSON_UNESCAPED_UNICODE);

exit;
?>