module Base::FormField
  extend ActiveSupport::Concern
  include Castable

  included do
    cast_as_boolean :Bold
    cast_as_boolean :Italic

    self.table_name = 'FormFields'
    self.primary_key = 'FormFieldID'

    alias_attribute :id, :FormFieldID
    alias_attribute :form_id, :FormID
    alias_attribute :label, :Label
    alias_attribute :help_text, :Description
    alias_attribute :type, :Type
    alias_attribute :length, :Length
    alias_attribute :position, :Sequence
    alias_attribute :align, :Align
    alias_attribute :rows, :Rows
    alias_attribute :cols, :Cols
    alias_attribute :content, :Content
    alias_attribute :bold, :Bold
    alias_attribute :italic, :Italic

    before_save :set_defaults

    private
      def set_defaults
        self.content = '' unless content?
      end
  end
end
