<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -5,8 +5,8 @@ class Channel
   include DataMapper::Resource
   
   property :id, Integer, :serial =&gt; true
-  property :server, String, :nullable =&gt; false
-  property :name, String, :nullable =&gt; false
+  property :server, String, :key =&gt; true
+  property :name, String, :key =&gt; true
   
   has n, :scores
   </diff>
      <filename>leaves/scorekeeper/models/channel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,8 +4,8 @@ class Person
   include DataMapper::Resource
   
   property :id, Integer, :serial =&gt; true
-  property :server, String, :nullable =&gt; false
-  property :name, String, :nullable =&gt; false
+  property :server, String, :nullable =&gt; false, :unique_index =&gt; :server_and_name
+  property :name, String, :nullable =&gt; false, :unique_index =&gt; :server_and_name
   property :authorized, Boolean, :nullable =&gt; false, :default =&gt; true
   
   has n, :scores, :child_key =&gt; [ :receiver_id ]</diff>
      <filename>leaves/scorekeeper/models/person.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,8 @@ class Pseudonym
   include DataMapper::Resource
   
   property :id, Integer, :serial =&gt; true
-  property :name, String, :nullable =&gt; false
+  property :name, String, :nullable =&gt; false, :index =&gt; true
+  property :person_id, Integer, :nullable =&gt; false, :index =&gt; true
   
   belongs_to :person
 end</diff>
      <filename>leaves/scorekeeper/models/pseudonym.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,14 +4,19 @@ class Score
   include DataMapper::Resource
   
   property :id, Integer, :serial =&gt; true
+  property :giver_id, Integer, :nullable =&gt; false, :index =&gt; :giver_and_receiver
+  property :receiver_id, Integer, :nullable =&gt; false, :index =&gt; :giver_and_receiver
+  property :channel_id, Integer, :nullable =&gt; false, :index =&gt; true
   property :change, Integer, :nullable =&gt; false, :default =&gt; 0
   property :note, String
-  property :created_at, DateTime
+  timestamps :created_at
   
   belongs_to :giver, :class_name =&gt; 'Person', :child_key =&gt; [ :giver_id ]
   belongs_to :receiver, :class_name =&gt; 'Person', :child_key =&gt; [ :receiver_id ]
   belongs_to :channel
   
+  validates_with_method :cant_give_scores_to_self
+  
   # Returns scores given to a Person.
   
   def self.given_to(people)
@@ -39,4 +44,14 @@ class Score
   def self.newest_first
     all(:order =&gt; [ :created_at.desc ])
   end
+  
+  private
+  
+  def cant_give_scores_to_self
+    if giver_id == receiver_id then
+      [ false, &quot;You can't change your own score.&quot; ]
+    else
+      true
+    end
+  end
 end</diff>
      <filename>leaves/scorekeeper/models/score.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0135a6f466b8b87c12b68fc4d72f9a7217fbb00c</id>
    </parent>
  </parents>
  <author>
    <name>Tim Morgan</name>
    <email>riscfuture@gmail.com</email>
  </author>
  <url>http://github.com/RISCfuture/autumn/commit/48833e91de53ff927180fd2f74457d8123dc0855</url>
  <id>48833e91de53ff927180fd2f74457d8123dc0855</id>
  <committed-date>2009-06-12T02:47:28-07:00</committed-date>
  <authored-date>2009-06-12T02:47:28-07:00</authored-date>
  <message>Schema improvements for Scorekeeper</message>
  <tree>aac8d5557ebcb8c75304f980b9f5bc48ddc62739</tree>
  <committer>
    <name>Tim Morgan</name>
    <email>riscfuture@gmail.com</email>
  </committer>
</commit>
