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

require_post();
$data = json_input();
require_fields($data, ['nombre']);

$pdo = getConnection();

try {
    $nombre = trim($data['nombre']);
    $descripcion = isset($data['descripcion']) ? trim($data['descripcion']) : null;
    $tipo = isset($data['tipo']) && in_array($data['tipo'], ['fija', 'variable']) ? $data['tipo'] : 'variable';
    $dia_pago = null;
    if ($tipo === 'fija') {
        if (!isset($data['dia_pago']) || (int)$data['dia_pago'] < 1 || (int)$data['dia_pago'] > 31) {
            json_error("El día de pago debe ser entre 1 y 31 para gastos fijos.");
        }
        $dia_pago = (int)$data['dia_pago'];
    }

    $stmt = $pdo->prepare("INSERT INTO categorias_gastos (nombre, descripcion, tipo, dia_pago) VALUES (?, ?, ?, ?)");
    $stmt->execute([$nombre, $descripcion, $tipo, $dia_pago]);

    json_success(['id' => (int)$pdo->lastInsertId()], 'Categoría creada');
} catch (Exception $e) {
    json_error("Error al crear: " . $e->getMessage());
}
