bad3968f9647166965e08805d66e38c71850c011
[aquarium] / src / main / scala / gr / grnet / aquarium / logic / events / WalletEntry.scala
1 package gr.grnet.aquarium.logic.events
2
3 import gr.grnet.aquarium.util.json.JsonHelpers
4 import net.liftweb.json._
5
6 /**
7  *
8  * @author Georgios Gousios <gousiosg@gmail.com>
9  */
10 case class WalletEntry(override val id: String,
11                        override val timestamp: Long,
12                        related: Array[String],
13                        value: Float,
14                        reason: String,
15                        userId: String,
16                        finalized: Boolean)
17   extends AquariumEvent(id, timestamp) {
18
19   assert(timestamp > 0)
20   assert(value > 0F)
21   assert(!userId.isEmpty)
22
23   def validate = true
24 }
25
26 object WalletEntry {
27   def fromJson(json: String): ResourceEvent = {
28     implicit val formats = JsonHelpers.DefaultJsonFormats
29     val jsonAST = parse(json)
30     Extraction.extract[ResourceEvent](jsonAST)
31   }
32
33   def zero = WalletEntry("", 1L, Array(),1,"","foo", false)
34 }