import 'dart:convert';
import 'package:http/http.dart' as http;

import '../models/comprobante_pdf.dart';
import '../models/movimientos_comprobantes.dart';
import '../models/movimientos_contacto.dart';

class MovimientosProvider{
  final String _url = "smart.solerpalau.mx";

  Future<MovimientosContacto> fetchMovimientosContacto(String token) async{
    final url = Uri.https(_url, 'PR/api/v1/quiosco/movimientos/obtenerDatosContacto');
    final res = await http.post(url,
        headers: {
          'Authorization' : 'Bearer $token'
        }
    );

    final decodedData = jsonDecode(res.body);
    final movimientosContacto = MovimientosContacto.fromJson(decodedData);
    return movimientosContacto;
  }

  Future<MovimientosComprobantes> fetchMovimientosComprobantes(String token, String dinum, String dinombre, String fecIni, String fecFin) async{
    final url = Uri.https(_url, 'PR/api/v1/quiosco/movimientos/obtenerComprobantes');
    final res = await http.post(url,
        headers: {
          'Authorization' : 'Bearer $token'
        },
        body: {
          'DINUM' : dinum,
          'DINOMBRE' : dinombre,
          'FECINI' : fecIni,
          'FECFIN' : fecFin
        }
    );

    final decodedData = jsonDecode(res.body);
    final movimientosComprobantes = MovimientosComprobantes.fromJson(decodedData);
    return movimientosComprobantes;
  }

  Future<ComprobantePdf> fetchComprobantePDF(String token, String idRegistro, String anio, String mes) async{
    final url = Uri.https(_url, 'PR/api/v1/quiosco/movimientos/verPdfComprobante');
    final res = await http.post(url,
        headers: {
          'Authorization' : 'Bearer $token'
        },
        body: {
          'idRegistro' : '$idRegistro',
          'anio' : '$anio',
          'mes' : '$mes'
        }
    );
    final decodedData = jsonDecode(res.body);
    print(decodedData);
    final comprobantePDF = ComprobantePdf.fromJson(decodedData);
    return comprobantePDF;
  }
}