summaryrefslogtreecommitdiff
path: root/model.lisp
blob: ce537cfab36ea4c316b79f6d1feb84a17652d8b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
;;;; model.lisp

(defclass player ()
  ((name :initarg :name :reader name)
   (games :accessor games)))

(defclass game ()
  ((name :initarg :name :reader name)
   (rating :accessor rating)
   (playtime :accessor playtime)
   (icon-url :accessor icon-url)
   (last-played :accessor last-played)))

(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)))