module Couchdb::CouchdbMeta::ReportInspection

  @@report = {
    name: "Inspection Report",
    detail: {
      tag: {
	inspection: {
	  fields: [
	    { name: :tag_value },
	    { name: :level },
	    { name: :location },
	    { name: :flat },
	    { name: :area },
	    { name: :updated_at },
	    { name: :latitude },
	    { name: :longitude },
	    { name: :altitude },
	    { name: :accuracy }
	  ]
	}
      },
      scan: {
	"urt-destructive": {
	  fields: [
	    { name: :form_ },
	    { name: :reference_number },
	    { name: :reinspection },
	    { name: :system_number },
	    { name: :firestop_system_type },
	    { name: :barrier },
	    { name: :barrier_material },
	    { name: :system_type },
	    { name: :label },
	    { name: :risk_level },
	    { name: :non_compliance_reason },
	    { name: :comments },
	    { name: :recommendations },
	    { name: :status },
	    { name: :created_at },
	    { name: :updated_at },
	    { name: :created_by },
	    { name: :latitude  },
	    { name: :longitude },
	    { name: :altitude  },
	    { name: :accuracy  }
	  ]
	},
	"urt-surveillance": {
	  fields: [
	    { name: :tag_id },
	    { name: :form_ },
	    { name: :reference_number },
	    { name: :reinspection },
	    { name: :comments },
	    { name: :recommendations },
	    { name: :risk_level },
	    { name: :status },
	    { name: :created_at },
	    { name: :updated_at },
	    { name: :created_by },
	    { name: :latitude  },
	    { name: :longitude },
	    { name: :altitude  },
	    { name: :accuracy  }
	  ]
	}
      }
    },
    list: {
      fields: [
	{ table: :scan, name: :updated_at, format: :datetime,	# format is not used yet
	  header_options: {
	    width: '15%'
	  },
	  data_options: {
	    class: 'text-nowrap'
	  }
	},
	{ table: :scan, name: :status },
	{ table: :scan, name: :risk_level },
	{ table: :scan, name: :form_ },
      ]
    },
    filter: {
      tag: [
	{ name: :level },
	{ name: :location, required: true },
	{ name: :flat },
	{ name: :area }
      ],
      scan: [
	{ name: :updated_at, required: true, as: :between_dates, default_sort: :desc },
	{ name: :status },
	{ name: :risk_level },
	{ name: :form_ },
	{ name: :reference_number, filter_type: :match },
#	{ name: :reference_number, as: :between_numbers },
	{ name: :comments, filter_type: :match }
      ]
    }
  }

  def self.getReport
    return @@report
  end
end
