summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/order.rb10
-rw-r--r--app/models/payment.rb8
-rw-r--r--app/models/product.rb2
-rw-r--r--app/models/product_order.rb8
4 files changed, 28 insertions, 0 deletions
diff --git a/app/models/order.rb b/app/models/order.rb
new file mode 100644
index 0000000..ae5a0d5
--- /dev/null
+++ b/app/models/order.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+# Order
+# public_id: string
+class Order < ApplicationRecord
+ belongs_to :user_account
+ has_one :payment
+ has_many :product_orders
+ has_many :products, through: :product_orders
+end
diff --git a/app/models/payment.rb b/app/models/payment.rb
new file mode 100644
index 0000000..5d5e862
--- /dev/null
+++ b/app/models/payment.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+# Payment
+# total: float
+class Payment < ApplicationRecord
+ has_one :order
+ belongs_to :card
+end
diff --git a/app/models/product.rb b/app/models/product.rb
index c4514a2..51d6c57 100644
--- a/app/models/product.rb
+++ b/app/models/product.rb
@@ -14,6 +14,8 @@ class Product < ApplicationRecord
has_many :product_reviews
has_many :product_carts
has_many :carts, through: :product_carts
+ has_many :product_orders
+ has_many :orders, through: :product_orders
validates :name, presence: true
validates :unitary_price, presence: true
diff --git a/app/models/product_order.rb b/app/models/product_order.rb
new file mode 100644
index 0000000..004f8fc
--- /dev/null
+++ b/app/models/product_order.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+# ProductOrder
+# quantity: integer
+class ProductOrder < ApplicationRecord
+ belongs_to :order
+ belongs_to :product
+end