/*
 * The MIT License
 *
 * Copyright (c) 2016 Marcelo "Ataxexe" Guimarães <ataxexe@devnull.tools>
 *
 * Permission  is hereby granted, free of charge, to any person obtaining
 * a  copy  of  this  software  and  associated  documentation files (the
 * "Software"),  to  deal  in the Software without restriction, including
 * without  limitation  the  rights to use, copy, modify, merge, publish,
 * distribute,  sublicense,  and/or  sell  copies of the Software, and to
 * permit  persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 * The  above  copyright  notice  and  this  permission  notice  shall be
 * included  in  all  copies  or  substantial  portions  of the Software.
 *
 * THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY OF ANY KIND,
 * EXPRESS  OR  IMPLIED,  INCLUDING  BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN  NO  EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * CLAIM,  DAMAGES  OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 * TORT  OR  OTHERWISE,  ARISING  FROM,  OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE   OR   THE   USE   OR   OTHER   DEALINGS  IN  THE  SOFTWARE.
 */

package tools.devnull.boteco.plugins.karma;

import com.google.gson.annotations.SerializedName;

import java.io.Serializable;

public class Karma implements Serializable {

  private static final long serialVersionUID = 2646677579622620059L;

  @SerializedName("_id")
  private final String name;
  private int value;

  public Karma(String name) {
    this.name = name;
  }

  public String name() {
    return name;
  }

  public int value() {
    return value;
  }

  public void raise() {
    value++;
  }

  public void lower() {
    value--;
  }

  public void set(int value) {
    this.value = value;
  }

  public String describe() {
    String tag = value < 0 ? "n" : "p";
    return String.format("[a]%s[/a] ([%s]%d[/%s])", name, tag, value, tag);
  }

}

@@ -1341,32 +1341,48 @@
 me;%0A
-%0A
 import 
-java.io.Serializ
+tools.devnull.boteco.message.Send
 able
@@ -1416,22 +1416,18 @@
 ments Se
-rializ
+nd
 able %7B%0A%0A
@@ -1886,15 +1886,14 @@
 ing 
-describ
+messag
 e() 

make karma implement sendable