;;;; src/web/package.lisp

(in-package #:cl-user)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.web.flash-message
  (:use #:cl)
  (:export #:flash
           #:flash-gethash
           #:flash-error
           #:flash-message))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.web.query
  (:use #:cl
        #:cl-deck-builder2.db
        #:cl-deck-builder2.models)
  (:export #:%sxql-like

           #:select-attachment
           #:select-category
           #:select-constructed-deck-items
           #:select-constructed-decks
           #:select-deck-item
           #:select-feedback
           #:select-ydk-deck

           #:cards-in-all-decks
           #:select-attachment-by-id
           #:select-variant-condition
           #:select-ygo-cc-item-variants
           #:ygo-select-info-by-id
           #:ygo-select-info-by-passcode
           #:ygo-set-item-by-id
           #:ygo-set-item-by-item-id))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.web
  (:use #:cl
        #:caveman2
        #:cl-deck-builder2.db
        #:cl-deck-builder2.models
        #:cl-deck-builder2.i18n
        #:cl-deck-builder2.toolkit
        #:cl-deck-builder2.web.query
        #:cl-deck-builder2.web.flash-message)
  (:local-nicknames (#:v #:org.shirakumo.verbose))
  (:import-from #:cl-deck-builder2.config
                #:*public-directory*
                #:*static-directory*
                #:*template-directory*)
  (:import-from #:cl-deck-builder2.draw
                #:draw-deck-image)
  (:import-from #:cl-deck-builder2.view #:render)
  (:import-from #:hermetic
                #:setup
                #:login
                #:logged-in-p
                #:user-name
                #:logout
                #:auth)
  (:export #:*web*
           #:make-chat-client
           #:make-chat-server))
