
package bbuvajava;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Cliente implements Serializable {
        private static final long serialVersionUID=1L;
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        private Long id;
        private String nombreCliente;
        private String direccion;
        private String telefono;
        private String dni;
        @OneToMany(cascade=CascadeType.ALL)
        private List<Producto> mProducto;

    public Cliente(){
        mProducto=new ArrayList();
    }

    public String getNombreCliente () {
        return nombreCliente;
    }

    public void setNombreCliente (String val) {
        this.nombreCliente = val;
    }

    public List<Producto> getMProducto() {
        return mProducto;
    }

    public void setMProducto(List<Producto> mProducto) {
        this.mProducto = mProducto;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public void insertaProductoenCliente(Producto p){
        this.mProducto.add(p);
    }
@Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Cliente)) {
            return false;
        }
        Cliente other = (Cliente) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "[Id" + id + "]";
    }
    public String mostrarProductos(){
        String aux="";
        int n=0;

        Iterator iterador = this.mProducto.listIterator();
        while( iterador.hasNext() ) {
            Producto p = (Producto) iterador.next();
            n++;
            aux+="\n\n    NºCuenta: "+p.getNumeroProducto();
            aux+="\n    Saldo:       "+p.getSaldo();

           }
        aux+="\n\n\tNº Total de cuentas: "+n;

        return aux;


    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

   
    public String getDni() {
        return dni;
    }
 
    public void setDni(String dni) {
        this.dni = dni;
    }

}
