package com.softgraf.model.vo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.softgraf.model.abstrato.AbstractVO;

// 12
public class Cliente implements AbstractVO {

	private int idCliente;
	private boolean pessoa;
	private String nome, assinatura, cpf_cnpj, rg, email, endereco, bairro, cidade, uf, fone1, fone2, fone3;
	private static final ArrayList<String> listaCampos;
	
	static {
		listaCampos = new ArrayList<String>();
		listaCampos.add("ID Cliente");
		listaCampos.add("Pessoa");
		listaCampos.add("Nome");
		listaCampos.add("Assinatura");
		listaCampos.add("CPF/CNPF");
		listaCampos.add("RG");
		listaCampos.add("E-mail");
		listaCampos.add("Endereço");
		listaCampos.add("Bairro");
		listaCampos.add("Cidade");
		listaCampos.add("Estado");
		listaCampos.add("Fone 1");
		listaCampos.add("Fone 2");
		listaCampos.add("Fone 3");
	}
	
	public Cliente() {
		this(true, "", "", "");
	}
	
	public Cliente(boolean pessoa, String nome, String cpf_cnpj, String fone1) {
		this.pessoa = pessoa;
		this.nome = nome;
		this.cpf_cnpj = cpf_cnpj;
		this.fone1 = fone1;
		this.fone2 = "";
		this.fone3 = "";
		this.assinatura = "";
		this.rg = "";
		this.email = "";
		this.endereco = "";
		this.bairro = "";
		this.cidade = "";
		this.uf = "";
	}
	
	public static List<String> getCampos() {
		return Collections.unmodifiableList(listaCampos);
	}
	
	// gettes e setters
	public int getIdCliente() {
		return idCliente;
	}

	public void setIdCliente(int idCliente) {
		this.idCliente = idCliente;
	}

	public boolean isPessoa() {
		return pessoa;
	}

	public void setPessoa(boolean pessoa) {
		this.pessoa = pessoa;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getAssinatura() {
		return assinatura;
	}

	public void setAssinatura(String assinatura) {
		this.assinatura = assinatura;
	}

	public String getCpf_cnpj() {
		return cpf_cnpj;
	}

	public void setCpf_cnpj(String cpf_cnpj) {
		this.cpf_cnpj = cpf_cnpj;
	}

	public String getRg() {
		return rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getUf() {
		return uf;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}

	public String getFone1() {
		return fone1;
	}

	public void setFone1(String fone1) {
		this.fone1 = fone1;
	}

	public String getFone2() {
		return fone2;
	}

	public void setFone2(String fone2) {
		this.fone2 = fone2;
	}

	public String getFone3() {
		return fone3;
	}

	public void setFone3(String fone3) {
		this.fone3 = fone3;
	}

	@Override
	public String toString() {
		return nome; // não usado
	}

	@Override
	public String[] toArray() {
		String[] array = {
				idCliente == 0 ? "" : String.valueOf(idCliente),
				pessoa ? "Física" : "Jurídica",
				nome,
				assinatura,
				cpf_cnpj,
				rg,
				email,
				endereco,
				bairro,
				cidade,
				uf,
				fone1,
				fone2,
				fone3
		};
		
		return array;
	}

}
