(ns models.__table
  (:require [db.__table]
            [coast.validator :as v])
  (:refer-clojure :exclude [update]))

(defn validate [m]
  (let [validations []]
    (if (empty? validations)
      m
      (v/validate validations m))))

(defn all []
  (db.__table/all))

(defn fetch [m]
  (db.__table/fetch m))

(defn create [m]
  (-> (validate m)
      (db.__table/insert)))

(defn update [m]
  (-> (validate m)
      (db.__table/update)))

(defn delete [m]
  (db.__table/delete m))
