<?php
require_once __DIR__ . '/../../config/database.php';
require_once __DIR__ . '/../../includes/helpers.php';

require_post();
$data = json_input();
require_fields($data, ['categoria_id', 'descripcion', 'monto', 'fecha_gasto']);

$pdo = getConnection();

try {
    $categoria_id = (int)$data['categoria_id'];
    $descripcion = trim($data['descripcion']);
    $monto = (float)$data['monto'];
    $fecha_gasto = $data['fecha_gasto'];
    $forma_pago = $data['forma_pago'] ?? 'efectivo';
    $referencia = isset($data['referencia']) ? trim($data['referencia']) : null;
    $proveedor_nombre = isset($data['proveedor_nombre']) ? trim($data['proveedor_nombre']) : null;
    $notas = isset($data['notas']) ? trim($data['notas']) : null;
    $sucursal_id = isset($data['sucursal_id']) ? (int)$data['sucursal_id'] : 1;
    $usuario_id = isset($data['usuario_id']) ? (int)$data['usuario_id'] : 1;

    if ($monto <= 0) {
        throw new Exception("El monto debe ser mayor a cero");
    }

    $stmt = $pdo->prepare("INSERT INTO gastos_operativos (categoria_id, descripcion, monto, fecha_gasto, forma_pago, referencia, proveedor_nombre, sucursal_id, usuario_id, notas) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
    $stmt->execute([$categoria_id, $descripcion, $monto, $fecha_gasto, $forma_pago, $referencia, $proveedor_nombre, $sucursal_id, $usuario_id, $notas]);

    json_success(['id' => (int)$pdo->lastInsertId()], 'Gasto registrado');
} catch (Exception $e) {
    json_error("Error al registrar: " . $e->getMessage());
}
