11: def restful_easy_emails(options = {})
12:
13: has_many :emails_as_sender,
14: :class_name => "Message",
15: :foreign_key => "sender_id"
16:
17: has_many :emails_as_receiver,
18: :class_name => "Message",
19: :foreign_key => "receiver_id"
20:
21: has_many :users_who_emailed_me,
22: :through => :emails_as_receiver,
23: :source => :sender,
24: :select => "users.*, emails.id AS email_id, emails.subject, emails.body, emails.created_at AS sent_at, emails.read_at"
25:
26: has_many :users_whom_i_have_emailed,
27: :through => :emails_as_sender,
28: :source => :receiver,
29: :select => "users.*, emails.id AS email_id, emails.subject, emails.body, emails.created_at AS sent_at, emails.read_at"
30:
31: has_many :unread_emails,
32: :through => :emails_as_receiver,
33: :source => :sender,
34: :conditions => "emails.read_at IS NULL",
35: :select => "users.*, emails.id AS email_id, emails.subject, emails.body, emails.created_at AS sent_at, emails.read_at"
36:
37: has_many :read_emails,
38: :through => :emails_as_receiver,
39: :source => :sender,
40: :conditions => "emails.read_at IS NOT NULL",
41: :select => "users.*, emails.id AS email_id, emails.subject, emails.body, emails.created_at AS sent_at, emails.read_at"
42:
43: has_many :inbox_emails,
44: :class_name => "Message",
45: :foreign_key => "receiver_id",
46: :conditions => "receiver_deleted IS NULL",
47: :order => "created_at DESC"
48:
49: has_many :outbox_emails,
50: :class_name => "Message",
51: :foreign_key => "sender_id",
52: :conditions => "sender_deleted IS NULL",
53: :order => "created_at DESC"
54:
55: has_many :trashbin_emails,
56: :class_name => "Message",
57: :foreign_key => "receiver_id",
58: :conditions => "receiver_deleted = true and receiver_purged IS NULL",
59: :order => "created_at DESC"
60:
61: include ProtonMicro::RestfulEasyMessages::Messages::InstanceMethods
62: end