import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:rkm_educa_app/componentes/appbar_custom.dart';
import 'package:rkm_educa_app/componentes/drawer_custom.dart';
import 'package:rkm_educa_app/componentes/item_historico.dart';
import 'package:rkm_educa_app/componentes/snackBars.dart';
import 'package:rkm_educa_app/modelos/estudante_modelo.dart';
import 'package:rkm_educa_app/telas/tela_botetim.dart';
import 'package:http/http.dart' as http;
import '../componentes/text_custom.dart';
import '../controllers/main_controllers.dart';
import '../utils/cores.dart';
import '../utils/dimensoes.dart';

class TelaHistorico extends StatefulWidget {
  EstudanteModelo estudanteModelo;

  TelaHistorico({
    required this.estudanteModelo
});

  @override
  State<TelaHistorico> createState() => _TelaHistoricoState();
}

class _TelaHistoricoState extends State<TelaHistorico> {

  bool carregando = true;
  List<ItemHistorico> listHistorico=[];

  @override
  void initState() {
    super.initState();
    MainControllers().salvarLog(widget.estudanteModelo, 'HISTORICO');
    print(widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_ALUNO']);
    getMatriculas();
  }

  getMatriculas()async{
    String cd = widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_ALUNO'];
    final url = '${widget.estudanteModelo.URL}/matriculas_aluno?CD_ALUNO=$cd&CIDADE=${widget.estudanteModelo.cidade}';
    print(url);
    final response = await http.get(Uri.parse(url));
    var map = json.decode(response.body);
    List list0 = map;
    List list =  list0.reversed.toList();
    print(map);
    if(list.length!=0){
      for(int i=0; list.length>i;i++){
        listHistorico.add(
            ItemHistorico(
                ano:'${list[i]['ANO_FREQ']}',
                turma: '${list[i]['DESC_SERIE']} ${list[i]['TURMA']}',
                onTap: ()=> Navigator.push(context,
                  MaterialPageRoute(builder: (context)=>
                      TelaBoletim(
                        estudanteModelo: widget.estudanteModelo,
                        ano: '${list[i]['ANO_FREQ']}',
                        turma: '${list[i]['DESC_SERIE']} ${list[i]['TURMA']}',
                        matricula: list[i]['CD_MATRICULA'].toString(),
                      )
                  )
                )
            )
        );
      }
    }else{
      showSnackBar(context, 'Histórico não encontrado!', Colors.red);
    }
    carregando = false;
    setState((){});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBarCustom().appbar(context, 'HISTÓRICO ESCOLAR'),
      drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo),
      body: carregando?Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            CircularProgressIndicator(color: PaletaCores.cinzaClaro,),
            SizedBox(width: 20,),
            TextCustom(text: 'Buscando dados ...')
          ],
        ),
      ):Container(
        padding: EdgeInsets.symmetric(vertical: 20,horizontal: 10),
        width: Dimensoes.width,
        height: Dimensoes.height,
        child: ListView.builder(
          itemCount: listHistorico.length,
          itemBuilder: (context,index){
            return listHistorico[index];
          },
        ),
      ),
    );
  }
}
