import { Component, OnInit, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { Usuarios } from '../../../models/usuarios.model';
import { UsuariosService } from '../../../services/usuarios.service';
import { Router, RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { HttpClient } from '@angular/common/http';
import { provideNgxMask, NgxMaskDirective } from 'ngx-mask';

@Component({
  selector: 'app-inserir-usuario',
  standalone: true,
  imports: [
    FormsModule,
    CommonModule,
    RouterModule,
    NgxMaskDirective
  ],
  providers: [provideNgxMask()],
  templateUrl: './inserir-usuarios.component.html',
  styleUrls: ['./inserir-usuarios.component.css']
})

export class InserirUsuarioComponent implements OnInit {
  @ViewChild('formUsuario') formUsuario! : NgForm;
  
  constructor(
    private usuariosService:UsuariosService,
    private router: Router
  ){}

  usuario! : Usuarios;
  modalUsuarios = false;
  message: string ='';

  ngOnInit(): void {
    this.usuario = new Usuarios();
  }
   
  inserirUsuario(): void {
    if (this.formUsuario.form.valid) {
      this.usuariosService.inserirUsuario(this.usuario)
        .subscribe({ next:(usuario: Usuarios | null) => {
          if(usuario){
            this.message = "Usuário Cadastrado"
            this.modalUsuarios = true;
          } else {
            console.log("Deu ruim aqui");
          }
        },
        error:(err) => {
          console.error('Erro ao atualizar usuário:', err);
          // Aqui, você pode exibir uma mensagem de erro para o usuário.
        },
        });
    }
  }  

  fecharModalEredirecionar(): void {
    this.modalUsuarios = false;
    this.message ='';
    this.router.navigate(['/usuarios']);
  }
}
