package com.example.unodtantos.appqueology2.modelo;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.example.unodtantos.appqueology2.controlador.DbHelperProyecto;

/**
 * Created by unodtantos on 18/03/2015.
 */
public class DataBaseManagerProyecto {

    /*--------------------------------------------------------------------------------------------*/

    // <editor-fold defaultstate="collapsed" desc="Atributos de la clase">

    //Tabla proyectos:
    public static final String TABLE_NAME_PROYECTO = "baseDatosProyecto";
    public static final String COLUM_NAME_ID_PROYECTO = "_id";
    public static final String COLUM_NAME_NOMBRE = "nombre";
    public static final String COLUM_NAME_AUTOR = "autor";

    //Sentencia create tabla proyectos
    public static final String CREATE_TABLE_PROYECTO = "create table " + TABLE_NAME_PROYECTO + " ("
            + COLUM_NAME_ID_PROYECTO + " integer primary key autoincrement,"
            + COLUM_NAME_NOMBRE + " text unique,"
            + COLUM_NAME_AUTOR + " text)";

    private DbHelperProyecto helper;
    private SQLiteDatabase db;
    private Context context;

    // </editor-fold>

    /*--------------------------------------------------------------------------------------------*/

    // <editor-fold defaultstate="collapsed" desc="Constructor de la clase">

    /**
     * Constructor de la clase.
     * @param context
     */
    public DataBaseManagerProyecto(Context context) {
        this.helper = new DbHelperProyecto(context);
        this.db = this.helper.getWritableDatabase();//se crea la base de datos//devuelve la base de datos si existe y sino la crea y la devuelve
        this.context=context;
    }

    // </editor-fold>

    /*--------------------------------------------------------------------------------------------*/

    // <editor-fold defaultstate="collapsed" desc="Generar el contenedor para guardar los resultados de una consulta">

    /**
     * Método que contendrá los valores correspondientes a los valores de una tabla.
     * @param nombre
     * @param autor
     * @return
     */
    public ContentValues generarContentValuesProyecto(String nombre, String autor){

        ContentValues valores = new ContentValues();
        valores.put(COLUM_NAME_NOMBRE,nombre);
        valores.put(COLUM_NAME_AUTOR,autor);

        return valores;
    }

    // </editor-fold>

    /*--------------------------------------------------------------------------------------------*/

    // <editor-fold defaultstate="collapsed" desc="Operaciones CRUD BBDD">

    /**
     * Método que permite insertar un nuevo Proyecto en la base de datos.
     * @param nombre
     * @param autor
     * @return
     */
    public long insertarProyecto(String nombre, String autor){

        long result = db.insert(TABLE_NAME_PROYECTO,null,generarContentValuesProyecto(nombre, autor));

        return result;
    }

    /**
     * Método que permite eliminar un Proyecto de la base de datos.
     * @param id
     * @return
     */
    public long eliminarProyecto(String id){
        return this.db.delete(TABLE_NAME_PROYECTO, COLUM_NAME_ID_PROYECTO + "=" + id, null);
    }

    /**
     * Método que permite hacer un load de los proyectos de la base de datos.
     * @return
     */
    public Cursor cargarCursorProyectos(){
        String[] columnas = new String[]{COLUM_NAME_ID_PROYECTO,COLUM_NAME_NOMBRE,COLUM_NAME_AUTOR};
        return db.query(TABLE_NAME_PROYECTO,columnas,null,null,null,null,null);
    }

    // </editor-fold>

    /*--------------------------------------------------------------------------------------------*/

    // <editor-fold defaultstate="collapsed" desc="Getters and Setters">

    public static String getColumNameIdProyecto() {
        return COLUM_NAME_ID_PROYECTO;
    }

    public static String getColumNameNombre() {
        return COLUM_NAME_NOMBRE;
    }

    public static String getColumNameAutor() {
        return COLUM_NAME_AUTOR;
    }

    // </editor-fold>

    /*--------------------------------------------------------------------------------------------*/

}
