main
rb 12 lines 386 Bytes
Raw
1 # frozen_string_literal: true
2
3 # One message in a CloudSession. Roles mirror the OpenAI chat contract the client
4 # already speaks (user / assistant / system).
5 class CloudMessage < ApplicationRecord
6 ROLES = %w[user assistant system].freeze
7
8 belongs_to :cloud_session
9
10 validates :role, presence: true, inclusion: { in: ROLES }
11 validates :content, length: { maximum: 200_000 }
12 end