summaryrefslogtreecommitdiff
path: root/model.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'model.lisp')
-rw-r--r--model.lisp20
1 files changed, 20 insertions, 0 deletions
diff --git a/model.lisp b/model.lisp
index 4c13185..ce537cf 100644
--- a/model.lisp
+++ b/model.lisp
@@ -1,5 +1,9 @@
;;;; model.lisp
+(defclass player ()
+ ((name :initarg :name :reader name)
+ (games :accessor games)))
+
(defclass game ()
((name :initarg :name :reader name)
(rating :accessor rating)
@@ -9,3 +13,19 @@
(defclass steam-game (game)
((appid :initarg :appid :reader appid)))
+
+(defmethod print-object ((object steam-game) stream)
+ (format stream "#<STEAM GAME ~a>" (name object)))
+
+(defclass feat ()
+ ((game :initarg :game :reader game)
+ (player :initarg :player :reader player)
+ (date :accessor date
+ :initform (multiple-value-list (date-calc:today-and-now)))
+ (description :accessor description :initform "")))
+
+(defclass achievement (feat)
+ ((name :initarg :name :reader name)))
+
+(defclass score (feat)
+ ((points :initarg :points :accessor points)))