import { alertConfirmationDelete } from "../../../components/alerts/sweetAlert.js"
import ImposicionDatatable from "../../../components/datatables/ImposicionDatatable.js"
import ImposicionEsquemaDatatable from "../../../components/datatables/ImposicionEsquemaDatatable.js"
import ImposicionEsquemaForm from "../../../components/forms/ImposicionEsquemaForm.js"
import ImposicionForm from "../../../components/forms/ImposicionForm.js"

class Imposicion {
    constructor() {
        this.itemTable = $("#tableOfImposiciones")
        this.itemEsquemaTable = $("#imposicion-esquema-table")
        this.itemForm = $("#form-imposicion")
        this.itemEsquemaForm = $("#form-imposicion-esquema")

        this.imposicionDatatable = new ImposicionDatatable(this.itemTable)
        this.imposicionEsquemaDatatable = new ImposicionEsquemaDatatable(this.itemEsquemaTable)

    }
    view() {
        this.imposicionDatatable.init()
        this.imposicionEsquemaDatatable.init()
        this.itemTable.on("click", ".imposicion-delete", this.deleteRow.bind(this))
        this.itemEsquemaTable.on("click", ".imposicion-esquema-delete", this.deleteEsquemaRow.bind(this))
        this.imposicionEsquemaForm = new ImposicionEsquemaForm(this.itemEsquemaForm)
        this.imposicionForm = new ImposicionForm(this.itemForm)


    }
    edit() {
        this.imposicionForm = new ImposicionForm(this.itemForm)
        this.imposicionForm.init()
    }
    new() {
        this.imposicionForm.initNew()
    }
    init_imposicion_esquema_form() {
        this.imposicionEsquemaForm = new ImposicionEsquemaForm(this.itemEsquemaForm)
        this.imposicionEsquemaForm.init()
    }
    deleteRow(event) {
        let modelId = $(event.currentTarget).data("id")
        alertConfirmationDelete().then((result) => {
            if (result.isConfirmed) {
                this.imposicionForm.handleDelete(modelId)
                this.imposicionDatatable.datatable.ajax.reload()
            }
        })
    }
    deleteEsquemaRow(event) {
        let modelId = $(event.currentTarget).data("id")
        alertConfirmationDelete().then((result) => {
            if (result.isConfirmed) {
                this.imposicionEsquemaForm.handleDelete(modelId)
                this.imposicionEsquemaDatatable.datatable.ajax.reload()
            }
        })
    }
}

export default Imposicion