balance end def top_up_credits(amount) [CreditsToppedUp.new(amount: amount, account_id: @id)] end def use_credits(amount) return [] if amount > balance [CreditsUsed.new(amount: amount, account_id: @id)] end end
void LANGUAGE sql AS $$ -- ordered_input cut out, transforms p_events INSERT INTO events (type, data, id) SELECT type, data, id FROM ordered_input; INSERT INTO streams (name, event_id, position) SELECT p_stream_name, id, p_expected_position + ord FROM ordered_input; $$;
id end def subscribe(student_id) if students.size < 20 [StudentSubscribedToCourse(student_id: student_id, course_id: @course_id)] else [] end end end class Student def initialize(id, courses) @courses = courses @student_id = id end def join(course_id) if courses.size < 5 [StudentSubscribedToCourse(student_id: @student_id, course_id: course_id)] else [] end end end
subscribe(student_id, course_id) if @by_courses[course_id].size < 20 && @by_students[student_id].size < 5 [StudentSubscribedToCourse(student_id: student_id, course_id: course_id)] else [] end end end