# frozen_string_literal: true

# This file is autogenerated by Deimos, Do NOT modify
module Schemas; module MyNamespace
  ### Primary Schema Class ###
  # Autogenerated Schema for Record at com.my-namespace.Wibble
  class Wibble < Deimos::SchemaClass::Record

    ### Attribute Accessors ###
    # @return [Integer]
    attr_accessor :id
    # @return [Integer]
    attr_accessor :wibble_id
    # @return [String]
    attr_accessor :name
    # @return [String]
    attr_accessor :floop
    # @return [Integer]
    attr_accessor :birthday_int
    # @return [Integer]
    attr_accessor :birthday_long
    # @return [nil, Integer]
    attr_accessor :birthday_optional
    # @return [Integer]
    attr_accessor :updated_at
    # @return [Integer]
    attr_accessor :created_at

    # @override
    def initialize(_from_message: false, id: nil,
                   wibble_id: nil,
                   name: nil,
                   floop: nil,
                   birthday_int: nil,
                   birthday_long: nil,
                   birthday_optional: nil,
                   updated_at: nil,
                   created_at: nil)
      @_from_message = _from_message
      super
      self.id = id
      self.wibble_id = wibble_id
      self.name = name
      self.floop = floop
      self.birthday_int = birthday_int
      self.birthday_long = birthday_long
      self.birthday_optional = birthday_optional
      self.updated_at = updated_at
      self.created_at = created_at
    end

    # @override
    def schema
      'Wibble'
    end

    # @override
    def namespace
      'com.my-namespace'
    end

    # @override
    def as_json(_opts={})
      {
        'id' => @id,
        'wibble_id' => @wibble_id,
        'name' => @name,
        'floop' => @floop,
        'birthday_int' => @birthday_int,
        'birthday_long' => @birthday_long,
        'birthday_optional' => @birthday_optional,
        'updated_at' => @updated_at,
        'created_at' => @created_at
      }
    end
  end
end; end
