diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/application_record.rb | 3 | ||||
-rw-r--r-- | app/models/bed.rb | 4 | ||||
-rw-r--r-- | app/models/concerns/.keep | 0 | ||||
-rw-r--r-- | app/models/crop.rb | 4 | ||||
-rw-r--r-- | app/models/fertilizer_component.rb | 3 | ||||
-rw-r--r-- | app/models/fertilizer_composition.rb | 6 | ||||
-rw-r--r-- | app/models/fertilizer_product.rb | 7 | ||||
-rw-r--r-- | app/models/nutrient.rb | 7 | ||||
-rw-r--r-- | app/models/nutrient_measurement.rb | 4 | ||||
-rw-r--r-- | app/models/raft.rb | 5 |
10 files changed, 43 insertions, 0 deletions
diff --git a/app/models/application_record.rb b/app/models/application_record.rb new file mode 100644 index 0000000..b63caeb --- /dev/null +++ b/app/models/application_record.rb @@ -0,0 +1,3 @@ +class ApplicationRecord < ActiveRecord::Base + primary_abstract_class +end diff --git a/app/models/bed.rb b/app/models/bed.rb new file mode 100644 index 0000000..33eafd2 --- /dev/null +++ b/app/models/bed.rb @@ -0,0 +1,4 @@ +class Bed < ApplicationRecord + has_many :rafts, -> { order(:location) }, dependent: :destroy + validates :location, presence: true, uniqueness: true +end diff --git a/app/models/concerns/.keep b/app/models/concerns/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/models/concerns/.keep diff --git a/app/models/crop.rb b/app/models/crop.rb new file mode 100644 index 0000000..b0f168d --- /dev/null +++ b/app/models/crop.rb @@ -0,0 +1,4 @@ +class Crop < ApplicationRecord + has_many :rafts + enum :crop_type, { leafy: 0, fruit: 1, herb: 2 } +end diff --git a/app/models/fertilizer_component.rb b/app/models/fertilizer_component.rb new file mode 100644 index 0000000..701ae9b --- /dev/null +++ b/app/models/fertilizer_component.rb @@ -0,0 +1,3 @@ +class FertilizerComponent < ApplicationRecord + validates :name, presence: true +end diff --git a/app/models/fertilizer_composition.rb b/app/models/fertilizer_composition.rb new file mode 100644 index 0000000..cf2bb93 --- /dev/null +++ b/app/models/fertilizer_composition.rb @@ -0,0 +1,6 @@ +class FertilizerComposition < ApplicationRecord + belongs_to :fertilizer_product + belongs_to :fertilizer_component + + validates :percent_w, numericality: { greater_than: 0, less_than_or_equal_to: 100 } +end diff --git a/app/models/fertilizer_product.rb b/app/models/fertilizer_product.rb new file mode 100644 index 0000000..e41316b --- /dev/null +++ b/app/models/fertilizer_product.rb @@ -0,0 +1,7 @@ +class FertilizerProduct < ApplicationRecord + has_many :fertilizer_compositions, dependent: :destroy + has_many :fertilizer_components, through: :fertilizer_compositions + + validates :name, presence: true, uniqueness: true + validates :purity, numericality: { greater_than: 0, less_than_or_equal_to: 100 } +end diff --git a/app/models/nutrient.rb b/app/models/nutrient.rb new file mode 100644 index 0000000..c584668 --- /dev/null +++ b/app/models/nutrient.rb @@ -0,0 +1,7 @@ +class Nutrient < ApplicationRecord + validates :formula, presence: true, uniqueness: true + validates :name, presence: true + + before_update { raise ActiveRecord::ReadOnlyRecord } + before_destroy { raise ActiveRecord::ReadOnlyRecord } +end diff --git a/app/models/nutrient_measurement.rb b/app/models/nutrient_measurement.rb new file mode 100644 index 0000000..f1d6d5b --- /dev/null +++ b/app/models/nutrient_measurement.rb @@ -0,0 +1,4 @@ +class NutrientMeasurement < ApplicationRecord + validates :measured_on, presence: true + validates :measured_on, uniqueness: true +end diff --git a/app/models/raft.rb b/app/models/raft.rb new file mode 100644 index 0000000..af52700 --- /dev/null +++ b/app/models/raft.rb @@ -0,0 +1,5 @@ +class Raft < ApplicationRecord + belongs_to :bed + belongs_to :crop + validates :location, presence: true, uniqueness: { scope: :bed_id } +end |