import 'package:sqflite/sqflite.dart';
import '../models/models.dart';
import 'repo_service.dart';

class ProductosService {
  Future<bool> isDatabaseEmpty() async {
    final dbClient = await RepoService().db;
    final categoriaCount = Sqflite.firstIntValue(
      await dbClient!.rawQuery('SELECT COUNT(*) FROM CategoriaProducto'),
    );
    final productoCount = Sqflite.firstIntValue(
      await dbClient.rawQuery('SELECT COUNT(*) FROM Producto'),
    );
    print('Categoria Count: $categoriaCount, Producto Count: $productoCount');
    return categoriaCount == 0 && productoCount == 0;
  }

  Future<void> fillCategoriaBD() async {
    final List<CategoriaProducto> categorias = [
      CategoriaProducto(id: 1, nombre: 'SANDWICHES'),
      CategoriaProducto(id: 2, nombre: 'BEBIDAS'),
    ];

    RepoService<CategoriaProducto> repoService =
        RepoService<CategoriaProducto>();
    for (var categoria in categorias) {
      await repoService.guardarLocal(categoria);
    }
  }

  Future<void> fillProductoBD() async {
    List<Producto> productos = [
      Producto(
          id: 1, idCategoria: 1, nombre: 'SANDWICH POLLO PARM', precio: '195'),
      Producto(
          id: 2, idCategoria: 1, nombre: 'SANDWICH MEATBALLS', precio: '195'),
      Producto(
          id: 3, idCategoria: 1, nombre: 'SANDWICH CAPRESE', precio: '180'),
      Producto(id: 4, idCategoria: 2, nombre: 'AGUA', precio: '25'),
      Producto(id: 5, idCategoria: 2, nombre: 'SODA BOTE', precio: '35'),
    ];

    RepoService<Producto> repoService = RepoService<Producto>();
    for (var producto in productos) {
      await repoService.guardarLocal(producto);
    }
  }
}
