#|
src/models/packages.lisp
Models Main Package List
|#
(in-package #:cl-user)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.generics
(:use #:cl)
(:export #:deck-id-of
#:name-of
#:ygo-archetype-of
#:ygo-atk-of
#:ygo-attribute-of
#:ygo-def-of
#:ygo-description-of
#:ygo-frame-type-of
#:ygo-level-of
#:ygo-linkmarkers-of
#:ygo-linkval-of
#:ygo-passcode-of
#:ygo-price-of
#:ygo-race-of
#:ygo-scale-of
#:ygo-type-of))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.registered-table
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.models.generics)
(:import-from #:cl-deck-builder2.toolkit
#:relative-pathname)
(:export #:registry
#:registered-classes
#:registered-table-class
#:ensure-tables-exist
#:migration-expressions
#:migrate-table
#:export-registered-classes
#:export-registered-classe-to-file))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.attachment
(:use #:cl
#:cl-deck-builder2.models.generics)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-table-class)
(:import-from #:cl-deck-builder2.db
#:create-dao)
(:export #:attachment
#:create-attachment
#:attachment-valid-p))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.category
(:use #:cl
#:cl-deck-builder2.models.generics)
(:import-from #:cl-deck-builder2.db
#:create-dao
#:select-dao)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-table-class)
(:export #:category
#:category-name-of
#:category-left-of
#:category-right-of
#:category-rename
#:category-insert-right-of
#:category-insert-new-child
#:category-insert-fake-data
#:category-full-tree
#:category-leaf-nodes
#:category-full-tree-format
#:category-delete-tree
#:category-delete-and-reparent
#:category-tree-depth
#:category-node-depth
#:category-subtree-depth
#:category-subtree-max-depth
#:by-category))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.ygoprodeck.fields
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.models.generics)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-table-class)
(:export #:variant
#:name-of
#:define-variant-list
#:variant-condition
#:variant-language
#:ygo-banlist-name
#:ygo-format-name
#:ygo-linkmarker-name
#:ygo-set-rarity-code))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.ygoprodeck
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.models.registered-table)
(:export :ygo-info
#:ygo-description-of
#:ygo-frame-type-of
#:ygo-type-of
#:ygo-passcode-of
#:name-of
#:ygo-race-of
#:ygo-archetype-of
#:ygo-attribute-of
#:ygo-linkmarkers-of
#:ygo-atk-of
#:ygo-def-of
#:ygo-level-of
#:ygo-linkval-of
#:ygo-scale-of))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.ygoprodeck.classes
(:use #:cl
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.models.ygoprodeck.fields)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-table-class)
(:import-from #:cl-deck-builder2.models.ygoprodeck.fields
#:variant-condition
#:ygo-banlist-name
#:ygo-format-name
#:ygo-linkmarker-name
#:ygo-set-rarity-code)
(:import-from :cl-deck-builder2.toolkit
:currency-deflate
:currency-inflate)
(:export #:ygo-card-name
#:ygo-card-type
#:ygo-card-frame-type
#:ygo-card-race
#:ygo-card-archetype
#:ygo-card-attribute
#:ygo-card
#:ygo-card-misc-info
#:ygo-set-name
#:ygo-set-code
#:ygo-set-rarity-code
#:ygo-set-rarity
#:ygo-set-edition
#:ygo-set
#:ygo-set-item
#:ygo-linkmarker
#:ygo-format
;; #:ygo-banlist-name
;; #:ygo-format-name
;; #:ygo-linkmarker-name
#:ygo-banlist
#:ygo-alternative-artwork
#:ygo-price
;; Accessor Methods
#:ygo-alternate-id-of
#:ygo-archetype-of
#:ygo-atk-of
#:ygo-attribute-of
#:ygo-ban-goat
#:ygo-ban-ocg
#:ygo-ban-tcg
#:ygo-beta-id-of
#:ygo-beta-name-of
#:ygo-card-type-of
#:ygo-code-of
#:ygo-common-charity-format
#:ygo-def-of
#:ygo-desc-of
#:ygo-downvotes-of
#:ygo-duel-links-format
#:ygo-edison-format
#:ygo-edition-of
#:ygo-frame-type-of
#:ygo-goat-format
#:ygo-has-effect
#:ygo-is-staple
#:ygo-konami-id-of
#:ygo-level-of
#:ygo-linkmarker-bottom
#:ygo-linkmarker-bottom-left
#:ygo-linkmarker-bottom-right
#:ygo-linkmarker-left
#:ygo-linkmarker-right
#:ygo-linkmarker-top
#:ygo-linkmarker-top-left
#:ygo-linkmarker-top-right
#:ygo-name-of
#:ygo-ocg-date-of
#:ygo-ocg-format
#:ygo-ocg-goat-format
#:ygo-passcode-of
#:ygo-question-atk
#:ygo-question-def
#:ygo-race-of
#:ygo-rarity-of
#:ygo-scale-of
#:ygo-set-code-of
#:ygo-set-rarity-code-of
#:ygo-speed-duel-format
#:ygo-tcg-date-of
#:ygo-tcg-format
#:ygo-treated-as
#:ygo-upvotes-of
#:ygo-url-of
#:ygo-views-of
#:ygo-viewsweek-of
#:ygo-amazon-price-of
#:ygo-cardmarket-price-of
#:ygo-coolstuffinc-price-of
#:ygo-ebay-price-of
#:ygo-tcgplayer-price-of
#:ygo-price-of
#:qty-of
#:item-of
#:variant-of
#:sell-price-of
#:opt-qty-of
#:buy-price-of)
(:documentation "New YGOProDeck database schema - classes."))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.ygoprodeck.methods
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.models.ygoprodeck.classes
#:cl-deck-builder2.models.ygoprodeck.fields)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-classes
#:registry)
(:export #:print-object
#:split-code
#:ygo-card
#:ygo-card-by-name
#:ygo-card-by-passcode
#:ygo-card-names-by-deck-id
#:ygo-card-names-from-list
#:ygo-card-sets
#:ygo-set
#:ygo-set-by-id
#:ygo-set-by-code
#:ygo-set-by-name
#:ygo-set-by-passcode
#:ygo-select-set-item)
(:documentation "New YGOProDeck database schema - methods."))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.ygoprodeck.cardinfo
(:use #:cl)
(:local-nicknames (#:v #:org.shirakumo.verbose))
(:export #:cardinfo
#:cardinfo-input
#:cardinfo-output
#:cardinfo-input-exists-p
#:cardinfo-output-exists-p
#:cardinfo-json
#:cardinfo-list
#:cardinfo-download
#:cardinfo-cleanup
#:cardinfo-convert
#:cardinfo-update-and-cleanup))
(defpackage #:cl-deck-builder2.models.ygoprodeck.json
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.toolkit
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.models.ygoprodeck.fields
#:cl-deck-builder2.models.ygoprodeck.cardinfo
#:cl-deck-builder2.models.ygoprodeck.classes)
(:local-nicknames (#:v #:org.shirakumo.verbose))
(:export #:cardinfo-import))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.user
(:use #:cl
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.db)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-table-class)
(:import-from :mito-auth
:has-secure-password)
(:export #:user
#:name-of
#:user-email-of
#:user-roles-of
#:role
#:user-role
#:user-role-user
#:user-role-role
#:user-admin-p
#:user-verified-p
#:create-user
#:find-user
#:create-role
#:add-role))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.feedback
(:use #:cl)
(:import-from #:cl-deck-builder2.db
#:create-dao)
(:import-from #:cl-deck-builder2.models.registered-table
#:registered-table-class)
(:import-from #:cl-deck-builder2.models.user
#:user)
(:export #:feedback
#:feedback-body-of
#:feedback-user-of
#:create-feedback))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This package doesn't touch the DB ... yet
(defpackage #:cl-deck-builder2.models.qr-code
(:use :cl
:cl-deck-builder2.db)
(:local-nicknames (#:v #:org.shirakumo.verbose))
(:import-from :cl-deck-builder2.toolkit
:query-param)
(:export :qr-settings
:qr-string
:qr-min-version
:qr-ec-level
:qr-encoding-mode
:qr-mask-number
:qr-to-plist
:qr-generate))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.ydk
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.models.registered-table
#:cl-deck-builder2.toolkit)
(:import-from #:cl-deck-builder2.models.category
#:category)
(:import-from #:cl-deck-builder2.models.ygoprodeck
#:ygo-info)
(:export #:ydk
#:deck-item
#:ydk-deck
#:deck-id-of
#:deck-kind-of
#:deck-passcode-of
#:ydk-created-by
#:ydk-name-of
#:ydk-id-of
#:ydk-deck-delete-from
#:ydk-deck-item-delete-from
#:ydk-deck-delete-by-id
#:ydk-deck-delete-by-name
#:ydk-deck-by-id
#:ydk-deck-by-name
#:ydk-deck-info-by-id
#:ydk-rename-deck
#:ydk-add
#:ydk-clear
#:ydk-sync
#:ydk-main-deck-of
#:ydk-extra-deck-of
#:ydk-side-deck-of
#:ydk-category-of
#:ydk-all
#:ydk-concatenate
#:ydk-unique
#:ydk-query
#:ydk-sorted
#:ydk-delete
#:ydk-delete-index
#:ydk-table-ensure-exists
#:ydk-table-drop
#:ydk-table-delete
#:ydk-table-select
#:ydk-table-select-count
#:ydk-to-kde)
(:documentation "This model is just a thin wrapper around YDK format.
The YDK Format is like this:
created by...
#main
#extra
!side
TODO CL-YDK + YDK-STORAGE-MIXIN?"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Psuedo class for working with the SQLite database.
;; This will probably go away once we switch over to MariaDB.
(defpackage #:cl-deck-builder2.models.sqlite-schema
(:use :cl
:cl-deck-builder2.db)
(:export #:sqlite-schema
#:kind-of
#:sql-of
#:rootpage-of
#:table-names))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defpackage #:cl-deck-builder2.models.constructed-decks
(:use #:cl
#:cl-deck-builder2.db
#:cl-deck-builder2.toolkit
#:cl-deck-builder2.models.generics
#:cl-deck-builder2.models.registered-table
#:cl-deck-builder2.models.ygoprodeck.classes
#:cl-deck-builder2.models.ygoprodeck.methods)
(:import-from #:cl-deck-builder2.models.category
#:category)
(:import-from #:cl-deck-builder2.models.ydk
#:deck-item
#:deck-id-of
#:deck-passcode-of
#:ydk-category-of
#:ydk-created-by
#:ydk-name-of
#:ydk-deck)
(:local-nicknames (#:v #:org.shirakumo.verbose))
(:export #:constructed-deck
#:constructed-deck-item
#:constructed-deck-intermediate
#:cdi-deck-item
#:cdi-deck-set
#:cdi-deck-set-item
#:cdi-deck-condition
#:cdi-deck-card
#:constructed-deck-as-cdi-list
;; :deck-category-of
;; :deck-created-by
;; :deck-id-of
:deck-name-of
;; :deck-sell-price
:deck-sell-price-of
:deck-sold
;; :ydk-deck-of
;; :ygo-card-of
;; #:sold-deck
#:ydk-deck-pull-from-inventory
#:find-any-invalid-qtys
#:deck-to-pull-set-items-qty-as-alist
#:deck-to-pull-desired-qty-as-alist
#:subtract-desired-from-set-item-qty-as-alist
#:valid-pull-p
#:cdi-pull-from-inventory))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(uiop:define-package #:cl-deck-builder2.models
(:use #:cl)
(:use-reexport #:cl-deck-builder2.models.attachment
#:cl-deck-builder2.models.category
#:cl-deck-builder2.models.constructed-decks
#:cl-deck-builder2.models.feedback
#:cl-deck-builder2.models.qr-code
#:cl-deck-builder2.models.registered-table
#:cl-deck-builder2.models.sqlite-schema
#:cl-deck-builder2.models.user
#:cl-deck-builder2.models.ydk
#:cl-deck-builder2.models.ygoprodeck
#:cl-deck-builder2.models.ygoprodeck.fields
#:cl-deck-builder2.models.ygoprodeck.cardinfo
#:cl-deck-builder2.models.ygoprodeck.json
;; TODO replace ygoprodeck with ygoprodeck2
#:cl-deck-builder2.models.ygoprodeck.classes
#:cl-deck-builder2.models.ygoprodeck.methods))