import 'dart:convert';

import 'package:yoshi_papas_app/data/api_response.dart';
import 'package:yoshi_papas_app/models/models.dart';

import '../services/base_service.dart';

class CategoriaProductoService extends BaseService {
  String endPoint = '/admin/categoria';
  //Consulta de la lista de Sala
  Map<String, String> defaultQueryParameters = {
    "limite": "10",
    "ordenar": "id-desc",
    "pagina": "1"
  };
  Future<List<CategoriaProducto>> fetchList(
      {String? q, bool segmentar = false}) async {
    if (q != null) {
      defaultQueryParameters['q'] = q.toString();
    }
    if (segmentar) {
      defaultQueryParameters['segmentar'] = "1";
    }
    final response =
        await get(endPoint, queryParameters: defaultQueryParameters);

    final categoriaProductoJson = jsonDecode(response.body);

    List<CategoriaProducto> categoriaProductos = [];

    for (var x in categoriaProductoJson['resultado']) {
      CategoriaProducto categoriaProducto = CategoriaProducto.fromJson(x);
      categoriaProductos.add(categoriaProducto);
    }

    return categoriaProductos;
  }

  Future<ApiResponse> postCategoriaProducto({
    required String nombre,
  }) async {
    var response = await post(
      '$endPoint/guardar',
      body: {
        'nombre': nombre,
      },
      withAuth: true,
    );
    return ApiResponse(response);
  }

  Future<ApiResponse> editCategoriaProducto({
    required int id,
    required String nombre,
  }) async {
    var response = await post(
      endPoint,
      body: {
        'id': id,
        'nombre': nombre,
      },
      withAuth: true,
    );
    return ApiResponse(response);
  }

  Future<ApiResponse> deleteCategoriaProducto({required int id}) async {
    var response = await delete(
      '$endPoint/eliminar',
      body: {
        'id': id,
      },
      withAuth: true,
    );
    return ApiResponse(response);
  }
}
