Revision: 3822
Author: hans
URL: http://bknr.net/trac/changeset/3822
Update shopping data structures, not yet a lot to see here.
U trunk/projects/quickhoney/src/packages.lisp
A trunk/projects/quickhoney/src/quickhoney-shop.lisp
U trunk/projects/quickhoney/src/shop.lisp
Modified: trunk/projects/quickhoney/src/packages.lisp
===================================================================
--- trunk/projects/quickhoney/src/packages.lisp 2008-09-06 16:34:27 UTC (rev 3821)
+++ trunk/projects/quickhoney/src/packages.lisp 2008-09-06 16:36:42 UTC (rev 3822)
@@ -17,6 +17,12 @@
:quickhoney.config)
(:export))
+(defpackage :shop
+ (:use :cl
+ :bknr.datastore
+ :bknr.indices
+ :bknr.user))
+
(defpackage :quickhoney
(:use :cl
:cl-user
@@ -40,7 +46,12 @@
#:quickhoney-image
#:quickhoney-image-client
#:quickhoney-image-spider-keywords
- #:startup))
+ #:startup
+ #:quickhoney-image-category
+ #:quickhoney-image-subcategory
+ #:all-categories
+ #:subcategories-of
+ #:images-in-category))
(defpackage :quickhoney.tags
(:use :cl
Added: trunk/projects/quickhoney/src/quickhoney-shop.lisp
===================================================================
--- trunk/projects/quickhoney/src/quickhoney-shop.lisp (rev 0)
+++ trunk/projects/quickhoney/src/quickhoney-shop.lisp 2008-09-06 16:36:42 UTC (rev 3822)
@@ -0,0 +1,12 @@
+(in-package :quickhoney)
+
+(define-persistent-class quickhoney-product ()
+ ((image
+ :update
+ :type (or quickhoney-image null)
+ :index-type hash-index
+ :index-reader products-for-image
+ :documentation
+ "Image that this product is related to, or nil for standalone products"))
+ (:documentation
+ "Mixin class for Quickhoney products, which are usually related to a QUICKHONEY-IMAGE"))
\ No newline at end of file
Modified: trunk/projects/quickhoney/src/shop.lisp
===================================================================
--- trunk/projects/quickhoney/src/shop.lisp 2008-09-06 16:34:27 UTC (rev 3821)
+++ trunk/projects/quickhoney/src/shop.lisp 2008-09-06 16:36:42 UTC (rev 3822)
@@ -1,4 +1,4 @@
-(in-package :quickhoney)
+(in-package :shop)
;; Shopping system.
@@ -24,11 +24,18 @@
:type money
:documentation
"Price of the product, not including any taxes.")
- (image
+ (name
:update
- :type (or quickhoney-image null)
+ :type string
+ :index-type string-unique-index
+ :index-reader product-with-name
:documentation
- "Image that this product is related to, or nil for standalone products")))
+ "Short name of the product, must be unique, should be identifier")
+ (description
+ :update
+ :type string
+ :documentation
+ "Textual description of the product")))
(defgeneric sell (product)
(:documentation
@@ -47,7 +54,7 @@
address. Once paid, the system makes the product available to the
customer for download."))
-(defgeneric stock-count ((product download-product))
+(defmethod stock-count ((product download-product))
nil)
(define-persistent-class emailable-product (product)
@@ -58,12 +65,13 @@
be supplied by the customer. Once paid, the system sends the
order to the store personnel for fulfillment."))
-(defgeneric stock-count ((product download-product))
+(defmethod stock-count ((product emailable-product))
nil)
(define-persistent-class mailable-product (product)
((stock-count :update
:type integer
+ :accessor stock-count
:documentation
"Number of instances of this product that are available to be sold."))
(:documentation