dscf-marketplace 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cde6c4e0be884ac22882a61a3e8e0dbe2e195905a18ec4daf22733c581c0c23d
4
- data.tar.gz: dbffce607b9df1020c5ea3d2a7d6b23cabe97ee22f2d8e36795d0fb0f5694da3
3
+ metadata.gz: 57b94e7df1ac8fe6e08df594a8a5509a16b2b6383071208a636a8981a0a6618a
4
+ data.tar.gz: 78f4ea4db87b33c9ad5027b40a710f5c5070a928c54f2fd3c351321c378d7ef5
5
5
  SHA512:
6
- metadata.gz: 48d49e3eaf3840f63fdf72cc26487fbefe607023a749a6a12b2d48d6a3dce2145ca6fcdaf54138b3c924d98ab462c9779810455fd0cb7949476ce4e5bbc16fb7
7
- data.tar.gz: 2252875018cea0d8272f4860090cb27175c20ce9986997d3846163db59484bf3024af348a9c7e1a4ac8d6f04c79e1ce3f90e8f254babced1b6aa283c92970972
6
+ metadata.gz: b0b2b27060010f601b6469c685302927b20d6559d13af18fac98ca6abaf0212a255739c1010952f63aeac14033283199fcfee734fdc97fa81f4b8ccdfa301fa6
7
+ data.tar.gz: 250396abdd9c4f188a0ecb7be10ff9a9c52aafccb0811201b7d923994b56f3fe2e892a6eb3d9a28261788f9dc04e1eb7e5173a7049c840c77b87b5f2924ced9b
@@ -0,0 +1,40 @@
1
+ module Dscf
2
+ module Marketplace
3
+ class Unit < ApplicationRecord
4
+ enum :unit_type, {
5
+ weight: 0,
6
+ volume: 1,
7
+ quantity: 2,
8
+ dimension: 3,
9
+ area: 4,
10
+ other: 5
11
+ }
12
+
13
+ has_many :unit_conversions, class_name: "Dscf::Marketplace::UnitConversion", foreign_key: :from_unit_id
14
+ has_many :products, class_name: "Dscf::Marketplace::Product"
15
+ has_many :supplier_products, class_name: "Dscf::Marketplace::SupplierProduct"
16
+ has_many :listings, class_name: "Dscf::Marketplace::Listing"
17
+ has_many :order_items, class_name: "Dscf::Marketplace::OrderItem"
18
+ has_many :rfq_items, class_name: "Dscf::Marketplace::RfqItem"
19
+ has_many :quotation_items, class_name: "Dscf::Marketplace::QuotationItem"
20
+
21
+ validates :code, presence: true, uniqueness: true, length: {maximum: 10}
22
+ validates :name, presence: true, length: {maximum: 50}
23
+ validates :unit_type, presence: true
24
+
25
+ scope :by_type, ->(type) { where(unit_type: unit_types[type]) }
26
+
27
+ def display_name
28
+ "#{name} (#{code})"
29
+ end
30
+
31
+ def convertible_to?(other_unit)
32
+ return false if other_unit.nil?
33
+
34
+ # NOTE: UnitConversion model not yet implemented
35
+ # For now, return false - will be implemented when UnitConversion is created
36
+ false
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ class CreateDscfMarketplaceUnits < ActiveRecord::Migration[8.0]
2
+ def change
3
+ create_table :dscf_marketplace_units do |t|
4
+ t.string :code, null: false, limit: 10
5
+ t.string :name, null: false, limit: 50
6
+ t.integer :unit_type, null: false
7
+
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :dscf_marketplace_units, :code,
12
+ unique: true,
13
+ name: "code_on_dm_units_indx"
14
+ add_index :dscf_marketplace_units, :unit_type,
15
+ name: "unit_type_on_dm_units_indx"
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Marketplace
3
- VERSION = "0.1.1".freeze
3
+ VERSION = "0.1.2".freeze
4
4
  end
5
5
  end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :dscf_marketplace_unit, class: "Dscf::Marketplace::Unit" do
3
+ sequence(:code) { |n| "unit#{n}" }
4
+ sequence(:name) { |n| "Unit #{n}" }
5
+ unit_type { :quantity }
6
+ end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-marketplace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
@@ -197,20 +197,6 @@ dependencies:
197
197
  - - "~>"
198
198
  - !ruby/object:Gem::Version
199
199
  version: '4.1'
200
- - !ruby/object:Gem::Dependency
201
- name: active_storage_validations
202
- requirement: !ruby/object:Gem::Requirement
203
- requirements:
204
- - - "~>"
205
- - !ruby/object:Gem::Version
206
- version: '1.1'
207
- type: :development
208
- prerelease: false
209
- version_requirements: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - "~>"
212
- - !ruby/object:Gem::Version
213
- version: '1.1'
214
200
  - !ruby/object:Gem::Dependency
215
201
  name: brakeman
216
202
  requirement: !ruby/object:Gem::Requirement
@@ -225,20 +211,6 @@ dependencies:
225
211
  - - "~>"
226
212
  - !ruby/object:Gem::Version
227
213
  version: '6.1'
228
- - !ruby/object:Gem::Dependency
229
- name: bullet
230
- requirement: !ruby/object:Gem::Requirement
231
- requirements:
232
- - - "~>"
233
- - !ruby/object:Gem::Version
234
- version: '7.1'
235
- type: :development
236
- prerelease: false
237
- version_requirements: !ruby/object:Gem::Requirement
238
- requirements:
239
- - - "~>"
240
- - !ruby/object:Gem::Version
241
- version: '7.1'
242
214
  - !ruby/object:Gem::Dependency
243
215
  name: database_cleaner-active_record
244
216
  requirement: !ruby/object:Gem::Requirement
@@ -450,14 +422,17 @@ files:
450
422
  - app/mailers/dscf/marketplace/application_mailer.rb
451
423
  - app/models/dscf/marketplace/application_record.rb
452
424
  - app/models/dscf/marketplace/category.rb
425
+ - app/models/dscf/marketplace/unit.rb
453
426
  - config/routes.rb
454
427
  - db/migrate/20250827172043_create_dscf_marketplace_categories.rb
455
428
  - db/migrate/20250827173526_update_dscf_marketplace_categories_indexes.rb
429
+ - db/migrate/20250827182550_create_dscf_marketplace_units.rb
456
430
  - lib/dscf/marketplace.rb
457
431
  - lib/dscf/marketplace/engine.rb
458
432
  - lib/dscf/marketplace/version.rb
459
433
  - lib/tasks/dscf/marketplace_tasks.rake
460
434
  - spec/factories/dscf/marketplace/categories.rb
435
+ - spec/factories/dscf/marketplace/units.rb
461
436
  homepage: https://mksaddis.com/
462
437
  licenses:
463
438
  - MIT