solidus_bank_transfer 0.0.1

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.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/README.md +63 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/javascripts/spree/backend/solidus_bank_transfer.js +2 -0
  6. data/app/assets/javascripts/spree/frontend/solidus_bank_transfer.js +2 -0
  7. data/app/assets/stylesheets/spree/backend/solidus_bank_transfer.css +4 -0
  8. data/app/assets/stylesheets/spree/frontend/solidus_bank_transfer.css +4 -0
  9. data/app/models/spree/payment_method/bank_transfer.rb +46 -0
  10. data/app/views/spree/checkout/payment/_banktransfer.html.erb +16 -0
  11. data/app/views/spree/order_mailer/_bank_transfer_details.html.erb +23 -0
  12. data/app/views/spree/orders/_bank_transfer_details.html.erb +22 -0
  13. data/config/locales/en.yml +14 -0
  14. data/config/locales/it.yml +14 -0
  15. data/config/routes.rb +5 -0
  16. data/lib/generators/solidus_bank_transfer/install/install_generator.rb +32 -0
  17. data/lib/solidus_bank_transfer.rb +4 -0
  18. data/lib/solidus_bank_transfer/engine.rb +26 -0
  19. data/lib/solidus_bank_transfer/factories.rb +17 -0
  20. data/lib/solidus_bank_transfer/version.rb +5 -0
  21. data/spec/dummy/README.md +24 -0
  22. data/spec/dummy/Rakefile +6 -0
  23. data/spec/dummy/app/assets/config/manifest.js +3 -0
  24. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  26. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  27. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  28. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  29. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  30. data/spec/dummy/app/jobs/application_job.rb +2 -0
  31. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  32. data/spec/dummy/app/models/application_record.rb +3 -0
  33. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  34. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  35. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  36. data/spec/dummy/bin/bundle +3 -0
  37. data/spec/dummy/bin/rails +4 -0
  38. data/spec/dummy/bin/rake +4 -0
  39. data/spec/dummy/bin/setup +33 -0
  40. data/spec/dummy/bin/update +28 -0
  41. data/spec/dummy/config.ru +5 -0
  42. data/spec/dummy/config/application.rb +54 -0
  43. data/spec/dummy/config/boot.rb +6 -0
  44. data/spec/dummy/config/cable.yml +10 -0
  45. data/spec/dummy/config/credentials.yml.enc +1 -0
  46. data/spec/dummy/config/database.yml +21 -0
  47. data/spec/dummy/config/environment.rb +5 -0
  48. data/spec/dummy/config/environments/development.rb +61 -0
  49. data/spec/dummy/config/environments/production.rb +94 -0
  50. data/spec/dummy/config/environments/test.rb +33 -0
  51. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  52. data/spec/dummy/config/initializers/assets.rb +12 -0
  53. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  55. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  56. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  57. data/spec/dummy/config/initializers/inflections.rb +16 -0
  58. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  59. data/spec/dummy/config/initializers/spree.rb +52 -0
  60. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  61. data/spec/dummy/config/locales/en.yml +33 -0
  62. data/spec/dummy/config/master.key +1 -0
  63. data/spec/dummy/config/routes.rb +9 -0
  64. data/spec/dummy/config/storage.yml +34 -0
  65. data/spec/dummy/db/migrate/20190822070920_create_active_storage_tables.active_storage.rb +27 -0
  66. data/spec/dummy/db/migrate/20190822070921_solidus_one_four.spree.rb +1103 -0
  67. data/spec/dummy/db/migrate/20190822070922_create_spree_wallet_payment_sources.spree.rb +28 -0
  68. data/spec/dummy/db/migrate/20190822070923_migrate_credit_cards_to_wallet_payment_sources.spree.rb +30 -0
  69. data/spec/dummy/db/migrate/20190822070924_remove_is_default_from_prices.spree.rb +8 -0
  70. data/spec/dummy/db/migrate/20190822070925_remove_currency_from_line_items.spree.rb +8 -0
  71. data/spec/dummy/db/migrate/20190822070926_add_available_to_columns_and_remove_display_on_from_payment_methods.spree.rb +31 -0
  72. data/spec/dummy/db/migrate/20190822070927_create_spree_promotion_code_batch.spree.rb +39 -0
  73. data/spec/dummy/db/migrate/20190822070928_add_available_to_users_and_remove_display_on_from_shipping_methods.spree.rb +23 -0
  74. data/spec/dummy/db/migrate/20190822070929_add_index_to_spree_payments_number.spree.rb +8 -0
  75. data/spec/dummy/db/migrate/20190822070930_remove_spree_store_credits_column.spree.rb +8 -0
  76. data/spec/dummy/db/migrate/20190822070931_add_lft_and_rgt_indexes_to_taxons.spree.rb +9 -0
  77. data/spec/dummy/db/migrate/20190822070932_remove_order_id_from_inventory_units.spree.rb +31 -0
  78. data/spec/dummy/db/migrate/20190822070933_transform_tax_rate_category_relation.spree.rb +51 -0
  79. data/spec/dummy/db/migrate/20190822070934_add_roles_unique_constraints.spree.rb +9 -0
  80. data/spec/dummy/db/migrate/20190822070935_add_time_range_to_tax_rate.spree.rb +9 -0
  81. data/spec/dummy/db/migrate/20190822070936_rename_bogus_gateways.spree.rb +19 -0
  82. data/spec/dummy/db/migrate/20190822070937_remove_default_tax_from_spree_zones.spree.rb +8 -0
  83. data/spec/dummy/db/migrate/20190822070938_create_promotion_rule_stores.spree.rb +13 -0
  84. data/spec/dummy/db/migrate/20190822070939_create_store_shipping_methods.spree.rb +13 -0
  85. data/spec/dummy/db/migrate/20190822070940_add_available_locales_to_stores.spree.rb +10 -0
  86. data/spec/dummy/db/migrate/20190822070941_add_amount_remaining_to_store_credit_events.spree.rb +62 -0
  87. data/spec/dummy/db/migrate/20190822070942_add_join_characters_to_promotion_code_batch.spree.rb +12 -0
  88. data/spec/dummy/db/migrate/20190822070943_create_spree_store_credit_reasons_table.spree.rb +56 -0
  89. data/spec/dummy/db/migrate/20190822070944_remove_code_from_spree_promotions.spree.rb +43 -0
  90. data/spec/dummy/db/migrate/20190822070945_drop_spree_store_credit_update_reasons.spree.rb +20 -0
  91. data/spec/dummy/db/migrate/20190822070946_add_api_key_to_spree_users.spree_api.rb +10 -0
  92. data/spec/dummy/db/migrate/20190822070947_resize_api_key_field.spree_api.rb +10 -0
  93. data/spec/dummy/db/migrate/20190822070948_rename_api_key_to_spree_api_key.spree_api.rb +10 -0
  94. data/spec/dummy/db/migrate/20190822070949_add_index_to_user_spree_api_key.spree_api.rb +10 -0
  95. data/spec/dummy/db/migrate/20190822070950_create_users.solidus_auth.rb +30 -0
  96. data/spec/dummy/db/migrate/20190822070951_rename_columns_for_devise.solidus_auth.rb +38 -0
  97. data/spec/dummy/db/migrate/20190822070952_convert_user_remember_field.solidus_auth.rb +12 -0
  98. data/spec/dummy/db/migrate/20190822070953_add_reset_password_sent_at_to_spree_users.solidus_auth.rb +9 -0
  99. data/spec/dummy/db/migrate/20190822070954_make_users_email_index_unique.solidus_auth.rb +10 -0
  100. data/spec/dummy/db/migrate/20190822070955_add_deleted_at_to_users.solidus_auth.rb +7 -0
  101. data/spec/dummy/db/migrate/20190822070956_add_confirmable_to_users.solidus_auth.rb +8 -0
  102. data/spec/dummy/db/schema.rb +1194 -0
  103. data/spec/dummy/db/seeds.rb +10 -0
  104. data/spec/dummy/log/test.log +1058 -0
  105. data/spec/dummy/public/404.html +67 -0
  106. data/spec/dummy/public/422.html +67 -0
  107. data/spec/dummy/public/500.html +66 -0
  108. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  109. data/spec/dummy/public/apple-touch-icon.png +0 -0
  110. data/spec/dummy/public/favicon.ico +0 -0
  111. data/spec/dummy/tmp/development_secret.txt +1 -0
  112. data/spec/dummy/vendor/assets/javascripts/spree/backend/all.js +11 -0
  113. data/spec/dummy/vendor/assets/javascripts/spree/frontend/all.js +11 -0
  114. data/spec/dummy/vendor/assets/stylesheets/spree/backend/all.css +10 -0
  115. data/spec/dummy/vendor/assets/stylesheets/spree/frontend/all.css +10 -0
  116. data/spec/models/spree/payment_method/bank_transfer_spec.rb +146 -0
  117. data/spec/spec_helper.rb +89 -0
  118. metadata +429 -0
@@ -0,0 +1,33 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Configure static asset server for tests with Cache-Control for performance
11
+ config.public_file_server.enabled = true
12
+ config.public_file_server.headers = { 'Cache-Control' => "public, max-age=3600" }
13
+
14
+ # Show full error reports and disable caching
15
+ config.consider_all_requests_local = true
16
+ config.action_controller.perform_caching = false
17
+
18
+ config.eager_load = false
19
+
20
+ # Raise exceptions instead of rendering exception templates
21
+ config.action_dispatch.show_exceptions = false
22
+
23
+ # Tell Action Mailer not to deliver emails to the real world.
24
+ # The :test delivery method accumulates sent emails in the
25
+ # ActionMailer::Base.deliveries array.
26
+ config.action_mailer.delivery_method = :test
27
+ ActionMailer::Base.default from: "spree@example.com"
28
+
29
+ # Raise on deprecation warnings
30
+ if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
31
+ Spree::Deprecation.behavior = :raise
32
+ end
33
+ end
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # ActiveSupport::Reloader.to_prepare do
4
+ # ApplicationController.renderer.defaults.merge!(
5
+ # http_host: 'example.org',
6
+ # https: false
7
+ # )
8
+ # end
@@ -0,0 +1,12 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Version of your assets, change this if you want to expire all your assets.
4
+ Rails.application.config.assets.version = '1.0'
5
+
6
+ # Add additional assets to the asset load path.
7
+ # Rails.application.config.assets.paths << Emoji.images_path
8
+
9
+ # Precompile additional assets.
10
+ # application.js, application.css, and all non-JS/CSS in the app/assets
11
+ # folder are already added.
12
+ # Rails.application.config.assets.precompile += %w( admin.js admin.css )
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,25 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Define an application-wide content security policy
4
+ # For further information see the following documentation
5
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
6
+
7
+ # Rails.application.config.content_security_policy do |policy|
8
+ # policy.default_src :self, :https
9
+ # policy.font_src :self, :https, :data
10
+ # policy.img_src :self, :https, :data
11
+ # policy.object_src :none
12
+ # policy.script_src :self, :https
13
+ # policy.style_src :self, :https
14
+
15
+ # # Specify URI for violation reports
16
+ # # policy.report_uri "/csp-violation-report-endpoint"
17
+ # end
18
+
19
+ # If you are using UJS then enable automatic nonce generation
20
+ # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
21
+
22
+ # Report CSP violations to a specified URI
23
+ # For further information see the following documentation:
24
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
25
+ # Rails.application.config.content_security_policy_report_only = true
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Specify a serializer for the signed and encrypted cookie jars.
4
+ # Valid options are :json, :marshal, and :hybrid.
5
+ Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Configure sensitive parameters which will be filtered from the log file.
4
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1,16 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format. Inflections
4
+ # are locale specific, and you may define rules for as many different
5
+ # locales as you wish. All of these examples are active by default:
6
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
7
+ # inflect.plural /^(ox)$/i, '\1en'
8
+ # inflect.singular /^(ox)en/i, '\1'
9
+ # inflect.irregular 'person', 'people'
10
+ # inflect.uncountable %w( fish sheep )
11
+ # end
12
+
13
+ # These inflection rules are supported but not enabled by default:
14
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
15
+ # inflect.acronym 'RESTful'
16
+ # end
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
@@ -0,0 +1,52 @@
1
+ # Configure Solidus Preferences
2
+ # See http://docs.solidus.io/Spree/AppConfiguration.html for details
3
+
4
+ Spree.config do |config|
5
+ # Core:
6
+
7
+ # Default currency for new sites
8
+ config.currency = "USD"
9
+
10
+ # from address for transactional emails
11
+ config.mails_from = "store@example.com"
12
+
13
+ # Uncomment to stop tracking inventory levels in the application
14
+ # config.track_inventory_levels = false
15
+
16
+ # When set, product caches are only invalidated when they fall below or rise
17
+ # above the inventory_cache_threshold that is set. Default is to invalidate cache on
18
+ # any inventory changes.
19
+ # config.inventory_cache_threshold = 3
20
+
21
+
22
+ # Frontend:
23
+
24
+ # Custom logo for the frontend
25
+ # config.logo = "logo/solidus.svg"
26
+
27
+ # Template to use when rendering layout
28
+ # config.layout = "spree/layouts/spree_application"
29
+
30
+
31
+ # Admin:
32
+
33
+ # Custom logo for the admin
34
+ # config.admin_interface_logo = "logo/solidus.svg"
35
+
36
+ # Gateway credentials can be configured statically here and referenced from
37
+ # the admin. They can also be fully configured from the admin.
38
+ #
39
+ # config.static_model_preferences.add(
40
+ # Spree::Gateway::StripeGateway,
41
+ # 'stripe_env_credentials',
42
+ # secret_key: ENV['STRIPE_SECRET_KEY'],
43
+ # publishable_key: ENV['STRIPE_PUBLISHABLE_KEY'],
44
+ # server: Rails.env.production? ? 'production' : 'test',
45
+ # test_mode: !Rails.env.production?
46
+ # )
47
+ end
48
+
49
+
50
+
51
+
52
+ Spree.user_class = "Spree::LegacyUser"
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json]
9
+ end
10
+
11
+ # To enable root element in JSON for ActiveRecord objects.
12
+ # ActiveSupport.on_load(:active_record) do
13
+ # self.include_root_in_json = true
14
+ # end
@@ -0,0 +1,33 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # The following keys must be escaped otherwise they will not be retrieved by
20
+ # the default I18n backend:
21
+ #
22
+ # true, false, on, off, yes, no
23
+ #
24
+ # Instead, surround them with single quotes.
25
+ #
26
+ # en:
27
+ # 'true': 'foo'
28
+ #
29
+ # To learn more, please read the Rails Internationalization guide
30
+ # available at http://guides.rubyonrails.org/i18n.html.
31
+
32
+ en:
33
+ hello: "Hello world"
@@ -0,0 +1 @@
1
+ 16afcd399fc52d2c7e8b3d16a6d1d45e
@@ -0,0 +1,9 @@
1
+ Rails.application.routes.draw do
2
+ # This line mounts Solidus's routes at the root of your application.
3
+ # This means, any requests to URLs such as /products, will go to Spree::ProductsController.
4
+ # If you would like to change where this engine is mounted, simply change the :at option to something different.
5
+ #
6
+ # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree"
7
+ mount Spree::Core::Engine, at: '/'
8
+
9
+ end
@@ -0,0 +1,34 @@
1
+ test:
2
+ service: Disk
3
+ root: <%= Rails.root.join("tmp/storage") %>
4
+
5
+ local:
6
+ service: Disk
7
+ root: <%= Rails.root.join("storage") %>
8
+
9
+ # Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
10
+ # amazon:
11
+ # service: S3
12
+ # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
13
+ # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
14
+ # region: us-east-1
15
+ # bucket: your_own_bucket
16
+
17
+ # Remember not to checkin your GCS keyfile to a repository
18
+ # google:
19
+ # service: GCS
20
+ # project: your_project
21
+ # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
22
+ # bucket: your_own_bucket
23
+
24
+ # Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
25
+ # microsoft:
26
+ # service: AzureStorage
27
+ # storage_account_name: your_account_name
28
+ # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
29
+ # container: your_container_name
30
+
31
+ # mirror:
32
+ # service: Mirror
33
+ # primary: local
34
+ # mirrors: [ amazon, google, microsoft ]
@@ -0,0 +1,27 @@
1
+ # This migration comes from active_storage (originally 20170806125915)
2
+ class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
3
+ def change
4
+ create_table :active_storage_blobs do |t|
5
+ t.string :key, null: false
6
+ t.string :filename, null: false
7
+ t.string :content_type
8
+ t.text :metadata
9
+ t.bigint :byte_size, null: false
10
+ t.string :checksum, null: false
11
+ t.datetime :created_at, null: false
12
+
13
+ t.index [ :key ], unique: true
14
+ end
15
+
16
+ create_table :active_storage_attachments do |t|
17
+ t.string :name, null: false
18
+ t.references :record, null: false, polymorphic: true, index: false
19
+ t.references :blob, null: false
20
+
21
+ t.datetime :created_at, null: false
22
+
23
+ t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
24
+ t.foreign_key :active_storage_blobs, column: :blob_id
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,1103 @@
1
+ # frozen_string_literal: true
2
+ # This migration comes from spree (originally 20160101010000)
3
+
4
+ class SolidusOneFour < ActiveRecord::Migration[5.0]
5
+ def up
6
+ # This migration is just a compressed version of all the previous
7
+ # migrations for spree_core. Do not run it if one of the core tables
8
+ # already exists. Assume the best.
9
+ return if table_exists?(:spree_addresses)
10
+
11
+ # this table should not technically exist in the database (as its provided by auth_devise),
12
+ # but spree_api depends on it existing. This defininition comes from solidus_auth_devise's first migration,
13
+ # and creates a table equivolent to it
14
+ create_table "spree_users", force: true do |t|
15
+ t.string "crypted_password", limit: 128
16
+ t.string "salt", limit: 128
17
+ t.string "email"
18
+ t.string "remember_token"
19
+ t.string "remember_token_expires_at"
20
+ t.string "persistence_token"
21
+ t.string "single_access_token"
22
+ t.string "perishable_token"
23
+ t.integer "login_count", default: 0, null: false
24
+ t.integer "failed_login_count", default: 0, null: false
25
+ t.datetime "last_request_at"
26
+ t.datetime "current_login_at"
27
+ t.datetime "last_login_at"
28
+ t.string "current_login_ip"
29
+ t.string "last_login_ip"
30
+ t.string "login"
31
+ t.integer "ship_address_id"
32
+ t.integer "bill_address_id"
33
+ t.datetime "created_at", null: false, precision: 6
34
+ t.datetime "updated_at", null: false, precision: 6
35
+ t.string "openid_identifier"
36
+ end
37
+
38
+ create_table "friendly_id_slugs", force: :cascade do |t|
39
+ t.string "slug", null: false
40
+ t.integer "sluggable_id", null: false
41
+ t.string "sluggable_type", limit: 50
42
+ t.string "scope"
43
+ t.datetime "created_at", precision: 6
44
+ t.datetime "updated_at", precision: 6
45
+ t.index ["slug", "sluggable_type", "scope"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type_and_scope", unique: true
46
+ t.index ["slug", "sluggable_type"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type"
47
+ t.index ["sluggable_id"], name: "index_friendly_id_slugs_on_sluggable_id"
48
+ t.index ["sluggable_type"], name: "index_friendly_id_slugs_on_sluggable_type"
49
+ end
50
+
51
+ create_table "spree_addresses", force: :cascade do |t|
52
+ t.string "firstname"
53
+ t.string "lastname"
54
+ t.string "address1"
55
+ t.string "address2"
56
+ t.string "city"
57
+ t.string "zipcode"
58
+ t.string "phone"
59
+ t.string "state_name"
60
+ t.string "alternative_phone"
61
+ t.string "company"
62
+ t.integer "state_id"
63
+ t.integer "country_id"
64
+ t.datetime "created_at", precision: 6
65
+ t.datetime "updated_at", precision: 6
66
+ t.index ["country_id"], name: "index_spree_addresses_on_country_id"
67
+ t.index ["firstname"], name: "index_addresses_on_firstname"
68
+ t.index ["lastname"], name: "index_addresses_on_lastname"
69
+ t.index ["state_id"], name: "index_spree_addresses_on_state_id"
70
+ end
71
+
72
+ create_table "spree_adjustment_reasons", force: :cascade do |t|
73
+ t.string "name"
74
+ t.string "code"
75
+ t.boolean "active", default: true
76
+ t.datetime "created_at", precision: 6
77
+ t.datetime "updated_at", precision: 6
78
+ t.index ["active"], name: "index_spree_adjustment_reasons_on_active"
79
+ t.index ["code"], name: "index_spree_adjustment_reasons_on_code"
80
+ end
81
+
82
+ create_table "spree_adjustments", force: :cascade do |t|
83
+ t.string "source_type"
84
+ t.integer "source_id"
85
+ t.string "adjustable_type"
86
+ t.integer "adjustable_id", null: false
87
+ t.decimal "amount", precision: 10, scale: 2
88
+ t.string "label"
89
+ t.boolean "eligible", default: true
90
+ t.datetime "created_at", precision: 6
91
+ t.datetime "updated_at", precision: 6
92
+ t.integer "order_id", null: false
93
+ t.boolean "included", default: false
94
+ t.integer "promotion_code_id"
95
+ t.integer "adjustment_reason_id"
96
+ t.boolean "finalized", default: false, null: false
97
+ t.index ["adjustable_id", "adjustable_type"], name: "index_spree_adjustments_on_adjustable_id_and_adjustable_type"
98
+ t.index ["adjustable_id"], name: "index_adjustments_on_order_id"
99
+ t.index ["eligible"], name: "index_spree_adjustments_on_eligible"
100
+ t.index ["order_id"], name: "index_spree_adjustments_on_order_id"
101
+ t.index ["promotion_code_id"], name: "index_spree_adjustments_on_promotion_code_id"
102
+ t.index ["source_id", "source_type"], name: "index_spree_adjustments_on_source_id_and_source_type"
103
+ end
104
+
105
+ create_table "spree_assets", force: :cascade do |t|
106
+ t.string "viewable_type"
107
+ t.integer "viewable_id"
108
+ t.integer "attachment_width"
109
+ t.integer "attachment_height"
110
+ t.integer "attachment_file_size"
111
+ t.integer "position"
112
+ t.string "attachment_content_type"
113
+ t.string "attachment_file_name"
114
+ t.string "type", limit: 75
115
+ t.datetime "attachment_updated_at"
116
+ t.text "alt"
117
+ t.datetime "created_at", precision: 6
118
+ t.datetime "updated_at", precision: 6
119
+ t.index ["viewable_id"], name: "index_assets_on_viewable_id"
120
+ t.index ["viewable_type", "type"], name: "index_assets_on_viewable_type_and_type"
121
+ end
122
+
123
+ create_table "spree_calculators", force: :cascade do |t|
124
+ t.string "type"
125
+ t.string "calculable_type"
126
+ t.integer "calculable_id"
127
+ t.datetime "created_at", precision: 6
128
+ t.datetime "updated_at", precision: 6
129
+ t.text "preferences"
130
+ t.index ["calculable_id", "calculable_type"], name: "index_spree_calculators_on_calculable_id_and_calculable_type"
131
+ t.index ["id", "type"], name: "index_spree_calculators_on_id_and_type"
132
+ end
133
+
134
+ create_table "spree_cartons", force: :cascade do |t|
135
+ t.string "number"
136
+ t.string "external_number"
137
+ t.integer "stock_location_id"
138
+ t.integer "address_id"
139
+ t.integer "shipping_method_id"
140
+ t.string "tracking"
141
+ t.datetime "shipped_at"
142
+ t.datetime "created_at", precision: 6
143
+ t.datetime "updated_at", precision: 6
144
+ t.integer "imported_from_shipment_id"
145
+ t.index ["external_number"], name: "index_spree_cartons_on_external_number"
146
+ t.index ["imported_from_shipment_id"], name: "index_spree_cartons_on_imported_from_shipment_id", unique: true
147
+ t.index ["number"], name: "index_spree_cartons_on_number", unique: true
148
+ t.index ["stock_location_id"], name: "index_spree_cartons_on_stock_location_id"
149
+ end
150
+
151
+ create_table "spree_countries", force: :cascade do |t|
152
+ t.string "iso_name"
153
+ t.string "iso"
154
+ t.string "iso3"
155
+ t.string "name"
156
+ t.integer "numcode"
157
+ t.boolean "states_required", default: false
158
+ t.datetime "updated_at", precision: 6
159
+ t.datetime "created_at", precision: 6
160
+ t.index ["iso"], name: "index_spree_countries_on_iso"
161
+ end
162
+
163
+ create_table "spree_credit_cards", force: :cascade do |t|
164
+ t.string "month"
165
+ t.string "year"
166
+ t.string "cc_type"
167
+ t.string "last_digits"
168
+ t.string "gateway_customer_profile_id"
169
+ t.string "gateway_payment_profile_id"
170
+ t.datetime "created_at", precision: 6
171
+ t.datetime "updated_at", precision: 6
172
+ t.string "name"
173
+ t.integer "user_id"
174
+ t.integer "payment_method_id"
175
+ t.boolean "default", default: false, null: false
176
+ t.integer "address_id"
177
+ t.index ["payment_method_id"], name: "index_spree_credit_cards_on_payment_method_id"
178
+ t.index ["user_id"], name: "index_spree_credit_cards_on_user_id"
179
+ end
180
+
181
+ create_table "spree_customer_returns", force: :cascade do |t|
182
+ t.string "number"
183
+ t.integer "stock_location_id"
184
+ t.datetime "created_at", precision: 6
185
+ t.datetime "updated_at", precision: 6
186
+ end
187
+
188
+ create_table "spree_inventory_units", force: :cascade do |t|
189
+ t.string "state"
190
+ t.integer "variant_id"
191
+ t.integer "order_id"
192
+ t.integer "shipment_id"
193
+ t.datetime "created_at", precision: 6
194
+ t.datetime "updated_at", precision: 6
195
+ t.boolean "pending", default: true
196
+ t.integer "line_item_id"
197
+ t.integer "carton_id"
198
+ t.index ["carton_id"], name: "index_spree_inventory_units_on_carton_id"
199
+ t.index ["line_item_id"], name: "index_spree_inventory_units_on_line_item_id"
200
+ t.index ["order_id"], name: "index_inventory_units_on_order_id"
201
+ t.index ["shipment_id"], name: "index_inventory_units_on_shipment_id"
202
+ t.index ["variant_id"], name: "index_inventory_units_on_variant_id"
203
+ end
204
+
205
+ create_table "spree_line_item_actions", force: :cascade do |t|
206
+ t.integer "line_item_id", null: false
207
+ t.integer "action_id", null: false
208
+ t.integer "quantity", default: 0
209
+ t.datetime "created_at", precision: 6
210
+ t.datetime "updated_at", precision: 6
211
+ t.index ["action_id"], name: "index_spree_line_item_actions_on_action_id"
212
+ t.index ["line_item_id"], name: "index_spree_line_item_actions_on_line_item_id"
213
+ end
214
+
215
+ create_table "spree_line_items", force: :cascade do |t|
216
+ t.integer "variant_id"
217
+ t.integer "order_id"
218
+ t.integer "quantity", null: false
219
+ t.decimal "price", precision: 10, scale: 2, null: false
220
+ t.datetime "created_at", precision: 6
221
+ t.datetime "updated_at", precision: 6
222
+ t.string "currency"
223
+ t.decimal "cost_price", precision: 10, scale: 2
224
+ t.integer "tax_category_id"
225
+ t.decimal "adjustment_total", precision: 10, scale: 2, default: "0.0"
226
+ t.decimal "additional_tax_total", precision: 10, scale: 2, default: "0.0"
227
+ t.decimal "promo_total", precision: 10, scale: 2, default: "0.0"
228
+ t.decimal "included_tax_total", precision: 10, scale: 2, default: "0.0", null: false
229
+ t.index ["order_id"], name: "index_spree_line_items_on_order_id"
230
+ t.index ["variant_id"], name: "index_spree_line_items_on_variant_id"
231
+ end
232
+
233
+ create_table "spree_log_entries", force: :cascade do |t|
234
+ t.string "source_type"
235
+ t.integer "source_id"
236
+ t.text "details"
237
+ t.datetime "created_at", precision: 6
238
+ t.datetime "updated_at", precision: 6
239
+ t.index ["source_id", "source_type"], name: "index_spree_log_entries_on_source_id_and_source_type"
240
+ end
241
+
242
+ create_table "spree_option_type_prototypes", force: :cascade do |t|
243
+ t.integer "prototype_id"
244
+ t.integer "option_type_id"
245
+ t.datetime "created_at", precision: 6
246
+ t.datetime "updated_at", precision: 6
247
+ end
248
+
249
+ create_table "spree_option_types", force: :cascade do |t|
250
+ t.string "name", limit: 100
251
+ t.string "presentation", limit: 100
252
+ t.integer "position", default: 0, null: false
253
+ t.datetime "created_at", precision: 6
254
+ t.datetime "updated_at", precision: 6
255
+ t.index ["position"], name: "index_spree_option_types_on_position"
256
+ end
257
+
258
+ create_table "spree_option_values", force: :cascade do |t|
259
+ t.integer "position"
260
+ t.string "name"
261
+ t.string "presentation"
262
+ t.integer "option_type_id"
263
+ t.datetime "created_at", precision: 6
264
+ t.datetime "updated_at", precision: 6
265
+ t.index ["option_type_id"], name: "index_spree_option_values_on_option_type_id"
266
+ t.index ["position"], name: "index_spree_option_values_on_position"
267
+ end
268
+
269
+ create_table "spree_option_values_variants", force: :cascade do |t|
270
+ t.integer "variant_id"
271
+ t.integer "option_value_id"
272
+ t.datetime "created_at", precision: 6
273
+ t.datetime "updated_at", precision: 6
274
+ t.index ["variant_id", "option_value_id"], name: "index_option_values_variants_on_variant_id_and_option_value_id"
275
+ t.index ["variant_id"], name: "index_spree_option_values_variants_on_variant_id"
276
+ end
277
+
278
+ create_table "spree_order_mutexes", force: :cascade do |t|
279
+ t.integer "order_id", null: false
280
+ t.datetime "created_at", precision: 6
281
+ t.index ["order_id"], name: "index_spree_order_mutexes_on_order_id", unique: true
282
+ end
283
+
284
+ create_table "spree_orders", force: :cascade do |t|
285
+ t.string "number", limit: 32
286
+ t.decimal "item_total", precision: 10, scale: 2, default: "0.0", null: false
287
+ t.decimal "total", precision: 10, scale: 2, default: "0.0", null: false
288
+ t.string "state"
289
+ t.decimal "adjustment_total", precision: 10, scale: 2, default: "0.0", null: false
290
+ t.integer "user_id"
291
+ t.datetime "completed_at"
292
+ t.integer "bill_address_id"
293
+ t.integer "ship_address_id"
294
+ t.decimal "payment_total", precision: 10, scale: 2, default: "0.0"
295
+ t.string "shipment_state"
296
+ t.string "payment_state"
297
+ t.string "email"
298
+ t.text "special_instructions"
299
+ t.datetime "created_at", precision: 6
300
+ t.datetime "updated_at", precision: 6
301
+ t.string "currency"
302
+ t.string "last_ip_address"
303
+ t.integer "created_by_id"
304
+ t.decimal "shipment_total", precision: 10, scale: 2, default: "0.0", null: false
305
+ t.decimal "additional_tax_total", precision: 10, scale: 2, default: "0.0"
306
+ t.decimal "promo_total", precision: 10, scale: 2, default: "0.0"
307
+ t.string "channel", default: "spree"
308
+ t.decimal "included_tax_total", precision: 10, scale: 2, default: "0.0", null: false
309
+ t.integer "item_count", default: 0
310
+ t.integer "approver_id"
311
+ t.datetime "approved_at"
312
+ t.boolean "confirmation_delivered", default: false
313
+ t.string "guest_token"
314
+ t.datetime "canceled_at"
315
+ t.integer "canceler_id"
316
+ t.integer "store_id"
317
+ t.string "approver_name"
318
+ t.boolean "frontend_viewable", default: true, null: false
319
+ t.index ["approver_id"], name: "index_spree_orders_on_approver_id"
320
+ t.index ["bill_address_id"], name: "index_spree_orders_on_bill_address_id"
321
+ t.index ["completed_at"], name: "index_spree_orders_on_completed_at"
322
+ t.index ["created_by_id"], name: "index_spree_orders_on_created_by_id"
323
+ t.index ["guest_token"], name: "index_spree_orders_on_guest_token"
324
+ t.index ["number"], name: "index_spree_orders_on_number"
325
+ t.index ["ship_address_id"], name: "index_spree_orders_on_ship_address_id"
326
+ t.index ["user_id", "created_by_id"], name: "index_spree_orders_on_user_id_and_created_by_id"
327
+ t.index ["user_id"], name: "index_spree_orders_on_user_id"
328
+ end
329
+
330
+ create_table "spree_orders_promotions", force: :cascade do |t|
331
+ t.integer "order_id"
332
+ t.integer "promotion_id"
333
+ t.integer "promotion_code_id"
334
+ t.datetime "created_at", precision: 6
335
+ t.datetime "updated_at", precision: 6
336
+ t.index ["order_id", "promotion_id"], name: "index_spree_orders_promotions_on_order_id_and_promotion_id"
337
+ t.index ["promotion_code_id"], name: "index_spree_orders_promotions_on_promotion_code_id"
338
+ end
339
+
340
+ create_table "spree_payment_capture_events", force: :cascade do |t|
341
+ t.decimal "amount", precision: 10, scale: 2, default: "0.0"
342
+ t.integer "payment_id"
343
+ t.datetime "created_at", precision: 6
344
+ t.datetime "updated_at", precision: 6
345
+ t.index ["payment_id"], name: "index_spree_payment_capture_events_on_payment_id"
346
+ end
347
+
348
+ create_table "spree_payment_methods", force: :cascade do |t|
349
+ t.string "type"
350
+ t.string "name"
351
+ t.text "description"
352
+ t.boolean "active", default: true
353
+ t.datetime "deleted_at"
354
+ t.datetime "created_at", precision: 6
355
+ t.datetime "updated_at", precision: 6
356
+ t.string "display_on"
357
+ t.boolean "auto_capture"
358
+ t.text "preferences"
359
+ t.string "preference_source"
360
+ t.integer "position", default: 0
361
+ t.index ["id", "type"], name: "index_spree_payment_methods_on_id_and_type"
362
+ end
363
+
364
+ create_table "spree_payments", force: :cascade do |t|
365
+ t.decimal "amount", precision: 10, scale: 2, default: "0.0", null: false
366
+ t.integer "order_id"
367
+ t.string "source_type"
368
+ t.integer "source_id"
369
+ t.integer "payment_method_id"
370
+ t.string "state"
371
+ t.string "response_code"
372
+ t.string "avs_response"
373
+ t.datetime "created_at", precision: 6
374
+ t.datetime "updated_at", precision: 6
375
+ t.string "number"
376
+ t.string "cvv_response_code"
377
+ t.string "cvv_response_message"
378
+ t.index ["order_id"], name: "index_spree_payments_on_order_id"
379
+ t.index ["payment_method_id"], name: "index_spree_payments_on_payment_method_id"
380
+ t.index ["source_id", "source_type"], name: "index_spree_payments_on_source_id_and_source_type"
381
+ end
382
+
383
+ create_table "spree_preferences", force: :cascade do |t|
384
+ t.text "value"
385
+ t.string "key"
386
+ t.datetime "created_at", precision: 6
387
+ t.datetime "updated_at", precision: 6
388
+ t.index ["key"], name: "index_spree_preferences_on_key", unique: true
389
+ end
390
+
391
+ create_table "spree_prices", force: :cascade do |t|
392
+ t.integer "variant_id", null: false
393
+ t.decimal "amount", precision: 10, scale: 2
394
+ t.string "currency"
395
+ t.datetime "deleted_at"
396
+ t.boolean "is_default", default: true, null: false
397
+ t.datetime "created_at", precision: 6
398
+ t.datetime "updated_at", precision: 6
399
+ t.string "country_iso", limit: 2
400
+ t.index ["country_iso"], name: "index_spree_prices_on_country_iso"
401
+ t.index ["variant_id", "currency"], name: "index_spree_prices_on_variant_id_and_currency"
402
+ end
403
+
404
+ create_table "spree_product_option_types", force: :cascade do |t|
405
+ t.integer "position"
406
+ t.integer "product_id"
407
+ t.integer "option_type_id"
408
+ t.datetime "created_at", precision: 6
409
+ t.datetime "updated_at", precision: 6
410
+ t.index ["option_type_id"], name: "index_spree_product_option_types_on_option_type_id"
411
+ t.index ["position"], name: "index_spree_product_option_types_on_position"
412
+ t.index ["product_id"], name: "index_spree_product_option_types_on_product_id"
413
+ end
414
+
415
+ create_table "spree_product_promotion_rules", force: :cascade do |t|
416
+ t.integer "product_id"
417
+ t.integer "promotion_rule_id"
418
+ t.datetime "created_at", precision: 6
419
+ t.datetime "updated_at", precision: 6
420
+ t.index ["product_id"], name: "index_products_promotion_rules_on_product_id"
421
+ t.index ["promotion_rule_id"], name: "index_products_promotion_rules_on_promotion_rule_id"
422
+ end
423
+
424
+ create_table "spree_product_properties", force: :cascade do |t|
425
+ t.string "value"
426
+ t.integer "product_id"
427
+ t.integer "property_id"
428
+ t.datetime "created_at", precision: 6
429
+ t.datetime "updated_at", precision: 6
430
+ t.integer "position", default: 0
431
+ t.index ["position"], name: "index_spree_product_properties_on_position"
432
+ t.index ["product_id"], name: "index_product_properties_on_product_id"
433
+ t.index ["property_id"], name: "index_spree_product_properties_on_property_id"
434
+ end
435
+
436
+ create_table "spree_products", force: :cascade do |t|
437
+ t.string "name", default: "", null: false
438
+ t.text "description"
439
+ t.datetime "available_on"
440
+ t.datetime "deleted_at"
441
+ t.string "slug"
442
+ t.text "meta_description"
443
+ t.string "meta_keywords"
444
+ t.integer "tax_category_id"
445
+ t.integer "shipping_category_id"
446
+ t.datetime "created_at", precision: 6
447
+ t.datetime "updated_at", precision: 6
448
+ t.boolean "promotionable", default: true
449
+ t.string "meta_title"
450
+ t.index ["available_on"], name: "index_spree_products_on_available_on"
451
+ t.index ["deleted_at"], name: "index_spree_products_on_deleted_at"
452
+ t.index ["name"], name: "index_spree_products_on_name"
453
+ t.index ["slug"], name: "index_spree_products_on_slug", unique: true
454
+ end
455
+
456
+ create_table "spree_products_taxons", force: :cascade do |t|
457
+ t.integer "product_id"
458
+ t.integer "taxon_id"
459
+ t.integer "position"
460
+ t.datetime "created_at", precision: 6
461
+ t.datetime "updated_at", precision: 6
462
+ t.index ["position"], name: "index_spree_products_taxons_on_position"
463
+ t.index ["product_id"], name: "index_spree_products_taxons_on_product_id"
464
+ t.index ["taxon_id"], name: "index_spree_products_taxons_on_taxon_id"
465
+ end
466
+
467
+ create_table "spree_promotion_action_line_items", force: :cascade do |t|
468
+ t.integer "promotion_action_id"
469
+ t.integer "variant_id"
470
+ t.integer "quantity", default: 1
471
+ t.datetime "created_at", precision: 6
472
+ t.datetime "updated_at", precision: 6
473
+ t.index ["promotion_action_id"], name: "index_spree_promotion_action_line_items_on_promotion_action_id"
474
+ t.index ["variant_id"], name: "index_spree_promotion_action_line_items_on_variant_id"
475
+ end
476
+
477
+ create_table "spree_promotion_actions", force: :cascade do |t|
478
+ t.integer "promotion_id"
479
+ t.integer "position"
480
+ t.string "type"
481
+ t.datetime "deleted_at"
482
+ t.text "preferences"
483
+ t.datetime "created_at", precision: 6
484
+ t.datetime "updated_at", precision: 6
485
+ t.index ["deleted_at"], name: "index_spree_promotion_actions_on_deleted_at"
486
+ t.index ["id", "type"], name: "index_spree_promotion_actions_on_id_and_type"
487
+ t.index ["promotion_id"], name: "index_spree_promotion_actions_on_promotion_id"
488
+ end
489
+
490
+ create_table "spree_promotion_categories", force: :cascade do |t|
491
+ t.string "name"
492
+ t.datetime "created_at", precision: 6
493
+ t.datetime "updated_at", precision: 6
494
+ t.string "code"
495
+ end
496
+
497
+ create_table "spree_promotion_codes", force: :cascade do |t|
498
+ t.integer "promotion_id", null: false
499
+ t.string "value", null: false
500
+ t.datetime "created_at", precision: 6
501
+ t.datetime "updated_at", precision: 6
502
+ t.index ["promotion_id"], name: "index_spree_promotion_codes_on_promotion_id"
503
+ t.index ["value"], name: "index_spree_promotion_codes_on_value", unique: true
504
+ end
505
+
506
+ create_table "spree_promotion_rule_taxons", force: :cascade do |t|
507
+ t.integer "taxon_id"
508
+ t.integer "promotion_rule_id"
509
+ t.datetime "created_at", precision: 6
510
+ t.datetime "updated_at", precision: 6
511
+ t.index ["promotion_rule_id"], name: "index_spree_promotion_rule_taxons_on_promotion_rule_id"
512
+ t.index ["taxon_id"], name: "index_spree_promotion_rule_taxons_on_taxon_id"
513
+ end
514
+
515
+ create_table "spree_promotion_rules", force: :cascade do |t|
516
+ t.integer "promotion_id"
517
+ t.integer "product_group_id"
518
+ t.string "type"
519
+ t.datetime "created_at", precision: 6
520
+ t.datetime "updated_at", precision: 6
521
+ t.string "code"
522
+ t.text "preferences"
523
+ t.index ["product_group_id"], name: "index_promotion_rules_on_product_group_id"
524
+ t.index ["promotion_id"], name: "index_spree_promotion_rules_on_promotion_id"
525
+ end
526
+
527
+ create_table "spree_promotion_rules_users", force: :cascade do |t|
528
+ t.integer "user_id"
529
+ t.integer "promotion_rule_id"
530
+ t.datetime "created_at", precision: 6
531
+ t.datetime "updated_at", precision: 6
532
+ t.index ["promotion_rule_id"], name: "index_promotion_rules_users_on_promotion_rule_id"
533
+ t.index ["user_id"], name: "index_promotion_rules_users_on_user_id"
534
+ end
535
+
536
+ create_table "spree_promotions", force: :cascade do |t|
537
+ t.string "description"
538
+ t.datetime "expires_at"
539
+ t.datetime "starts_at"
540
+ t.string "name"
541
+ t.string "type"
542
+ t.integer "usage_limit"
543
+ t.string "match_policy", default: "all"
544
+ t.string "code"
545
+ t.boolean "advertise", default: false
546
+ t.string "path"
547
+ t.datetime "created_at", precision: 6
548
+ t.datetime "updated_at", precision: 6
549
+ t.integer "promotion_category_id"
550
+ t.integer "per_code_usage_limit"
551
+ t.boolean "apply_automatically", default: false
552
+ t.index ["advertise"], name: "index_spree_promotions_on_advertise"
553
+ t.index ["apply_automatically"], name: "index_spree_promotions_on_apply_automatically"
554
+ t.index ["code"], name: "index_spree_promotions_on_code"
555
+ t.index ["expires_at"], name: "index_spree_promotions_on_expires_at"
556
+ t.index ["id", "type"], name: "index_spree_promotions_on_id_and_type"
557
+ t.index ["promotion_category_id"], name: "index_spree_promotions_on_promotion_category_id"
558
+ t.index ["starts_at"], name: "index_spree_promotions_on_starts_at"
559
+ end
560
+
561
+ create_table "spree_properties", force: :cascade do |t|
562
+ t.string "name"
563
+ t.string "presentation", null: false
564
+ t.datetime "created_at", precision: 6
565
+ t.datetime "updated_at", precision: 6
566
+ end
567
+
568
+ create_table "spree_property_prototypes", force: :cascade do |t|
569
+ t.integer "prototype_id"
570
+ t.integer "property_id"
571
+ t.datetime "created_at", precision: 6
572
+ t.datetime "updated_at", precision: 6
573
+ end
574
+
575
+ create_table "spree_prototype_taxons", force: :cascade do |t|
576
+ t.integer "taxon_id"
577
+ t.integer "prototype_id"
578
+ t.datetime "created_at", precision: 6
579
+ t.datetime "updated_at", precision: 6
580
+ t.index ["prototype_id"], name: "index_spree_prototype_taxons_on_prototype_id"
581
+ t.index ["taxon_id"], name: "index_spree_prototype_taxons_on_taxon_id"
582
+ end
583
+
584
+ create_table "spree_prototypes", force: :cascade do |t|
585
+ t.string "name"
586
+ t.datetime "created_at", precision: 6
587
+ t.datetime "updated_at", precision: 6
588
+ end
589
+
590
+ create_table "spree_refund_reasons", force: :cascade do |t|
591
+ t.string "name"
592
+ t.boolean "active", default: true
593
+ t.boolean "mutable", default: true
594
+ t.datetime "created_at", precision: 6
595
+ t.datetime "updated_at", precision: 6
596
+ t.string "code"
597
+ end
598
+
599
+ create_table "spree_refunds", force: :cascade do |t|
600
+ t.integer "payment_id"
601
+ t.decimal "amount", precision: 10, scale: 2, default: "0.0", null: false
602
+ t.string "transaction_id"
603
+ t.datetime "created_at", precision: 6
604
+ t.datetime "updated_at", precision: 6
605
+ t.integer "refund_reason_id"
606
+ t.integer "reimbursement_id"
607
+ t.index ["payment_id"], name: "index_spree_refunds_on_payment_id"
608
+ t.index ["refund_reason_id"], name: "index_refunds_on_refund_reason_id"
609
+ t.index ["reimbursement_id"], name: "index_spree_refunds_on_reimbursement_id"
610
+ end
611
+
612
+ create_table "spree_reimbursement_credits", force: :cascade do |t|
613
+ t.decimal "amount", precision: 10, scale: 2, default: "0.0", null: false
614
+ t.integer "reimbursement_id"
615
+ t.integer "creditable_id"
616
+ t.string "creditable_type"
617
+ t.datetime "created_at", precision: 6
618
+ t.datetime "updated_at", precision: 6
619
+ end
620
+
621
+ create_table "spree_reimbursement_types", force: :cascade do |t|
622
+ t.string "name"
623
+ t.boolean "active", default: true
624
+ t.boolean "mutable", default: true
625
+ t.datetime "created_at", precision: 6
626
+ t.datetime "updated_at", precision: 6
627
+ t.string "type"
628
+ t.index ["type"], name: "index_spree_reimbursement_types_on_type"
629
+ end
630
+
631
+ create_table "spree_reimbursements", force: :cascade do |t|
632
+ t.string "number"
633
+ t.string "reimbursement_status"
634
+ t.integer "customer_return_id"
635
+ t.integer "order_id"
636
+ t.decimal "total", precision: 10, scale: 2
637
+ t.datetime "created_at", precision: 6
638
+ t.datetime "updated_at", precision: 6
639
+ t.index ["customer_return_id"], name: "index_spree_reimbursements_on_customer_return_id"
640
+ t.index ["order_id"], name: "index_spree_reimbursements_on_order_id"
641
+ end
642
+
643
+ create_table "spree_return_authorizations", force: :cascade do |t|
644
+ t.string "number"
645
+ t.string "state"
646
+ t.integer "order_id"
647
+ t.text "memo"
648
+ t.datetime "created_at", precision: 6
649
+ t.datetime "updated_at", precision: 6
650
+ t.integer "stock_location_id"
651
+ t.integer "return_reason_id"
652
+ t.index ["return_reason_id"], name: "index_return_authorizations_on_return_authorization_reason_id"
653
+ end
654
+
655
+ create_table "spree_return_items", force: :cascade do |t|
656
+ t.integer "return_authorization_id"
657
+ t.integer "inventory_unit_id"
658
+ t.integer "exchange_variant_id"
659
+ t.datetime "created_at", precision: 6
660
+ t.datetime "updated_at", precision: 6
661
+ t.decimal "amount", precision: 12, scale: 4, default: "0.0", null: false
662
+ t.decimal "included_tax_total", precision: 12, scale: 4, default: "0.0", null: false
663
+ t.decimal "additional_tax_total", precision: 12, scale: 4, default: "0.0", null: false
664
+ t.string "reception_status"
665
+ t.string "acceptance_status"
666
+ t.integer "customer_return_id"
667
+ t.integer "reimbursement_id"
668
+ t.integer "exchange_inventory_unit_id"
669
+ t.text "acceptance_status_errors"
670
+ t.integer "preferred_reimbursement_type_id"
671
+ t.integer "override_reimbursement_type_id"
672
+ t.boolean "resellable", default: true, null: false
673
+ t.integer "return_reason_id"
674
+ t.index ["customer_return_id"], name: "index_return_items_on_customer_return_id"
675
+ t.index ["exchange_inventory_unit_id"], name: "index_spree_return_items_on_exchange_inventory_unit_id"
676
+ end
677
+
678
+ create_table "spree_return_reasons", force: :cascade do |t|
679
+ t.string "name"
680
+ t.boolean "active", default: true
681
+ t.boolean "mutable", default: true
682
+ t.datetime "created_at", precision: 6
683
+ t.datetime "updated_at", precision: 6
684
+ end
685
+
686
+ create_table "spree_roles", force: :cascade do |t|
687
+ t.string "name"
688
+ t.datetime "created_at", precision: 6
689
+ t.datetime "updated_at", precision: 6
690
+ end
691
+
692
+ create_table "spree_roles_users", force: :cascade do |t|
693
+ t.integer "role_id"
694
+ t.integer "user_id"
695
+ t.datetime "created_at", precision: 6
696
+ t.datetime "updated_at", precision: 6
697
+ t.index ["role_id"], name: "index_spree_roles_users_on_role_id"
698
+ t.index ["user_id"], name: "index_spree_roles_users_on_user_id"
699
+ end
700
+
701
+ create_table "spree_shipments", force: :cascade do |t|
702
+ t.string "tracking"
703
+ t.string "number"
704
+ t.decimal "cost", precision: 10, scale: 2, default: "0.0"
705
+ t.datetime "shipped_at"
706
+ t.integer "order_id"
707
+ t.integer "deprecated_address_id"
708
+ t.string "state"
709
+ t.datetime "created_at", precision: 6
710
+ t.datetime "updated_at", precision: 6
711
+ t.integer "stock_location_id"
712
+ t.decimal "adjustment_total", precision: 10, scale: 2, default: "0.0"
713
+ t.decimal "additional_tax_total", precision: 10, scale: 2, default: "0.0"
714
+ t.decimal "promo_total", precision: 10, scale: 2, default: "0.0"
715
+ t.decimal "included_tax_total", precision: 10, scale: 2, default: "0.0", null: false
716
+ t.index ["deprecated_address_id"], name: "index_spree_shipments_on_deprecated_address_id"
717
+ t.index ["number"], name: "index_shipments_on_number"
718
+ t.index ["order_id"], name: "index_spree_shipments_on_order_id"
719
+ t.index ["stock_location_id"], name: "index_spree_shipments_on_stock_location_id"
720
+ end
721
+
722
+ create_table "spree_shipping_categories", force: :cascade do |t|
723
+ t.string "name"
724
+ t.datetime "created_at", precision: 6
725
+ t.datetime "updated_at", precision: 6
726
+ end
727
+
728
+ create_table "spree_shipping_method_categories", force: :cascade do |t|
729
+ t.integer "shipping_method_id", null: false
730
+ t.integer "shipping_category_id", null: false
731
+ t.datetime "created_at", precision: 6
732
+ t.datetime "updated_at", precision: 6
733
+ t.index ["shipping_category_id", "shipping_method_id"], name: "unique_spree_shipping_method_categories", unique: true
734
+ t.index ["shipping_method_id"], name: "index_spree_shipping_method_categories_on_shipping_method_id"
735
+ end
736
+
737
+ create_table "spree_shipping_method_stock_locations", force: :cascade do |t|
738
+ t.integer "shipping_method_id"
739
+ t.integer "stock_location_id"
740
+ t.datetime "created_at", precision: 6
741
+ t.datetime "updated_at", precision: 6
742
+ t.index ["shipping_method_id"], name: "shipping_method_id_spree_sm_sl"
743
+ t.index ["stock_location_id"], name: "sstock_location_id_spree_sm_sl"
744
+ end
745
+
746
+ create_table "spree_shipping_method_zones", force: :cascade do |t|
747
+ t.integer "shipping_method_id"
748
+ t.integer "zone_id"
749
+ t.datetime "created_at", precision: 6
750
+ t.datetime "updated_at", precision: 6
751
+ end
752
+
753
+ create_table "spree_shipping_methods", force: :cascade do |t|
754
+ t.string "name"
755
+ t.string "display_on"
756
+ t.datetime "deleted_at"
757
+ t.datetime "created_at", precision: 6
758
+ t.datetime "updated_at", precision: 6
759
+ t.string "tracking_url"
760
+ t.string "admin_name"
761
+ t.integer "tax_category_id"
762
+ t.string "code"
763
+ t.boolean "available_to_all", default: true
764
+ t.string "carrier"
765
+ t.string "service_level"
766
+ t.index ["tax_category_id"], name: "index_spree_shipping_methods_on_tax_category_id"
767
+ end
768
+
769
+ create_table "spree_shipping_rate_taxes", force: :cascade do |t|
770
+ t.decimal "amount", precision: 8, scale: 2, default: "0.0", null: false
771
+ t.integer "tax_rate_id"
772
+ t.integer "shipping_rate_id"
773
+ t.datetime "created_at", null: false, precision: 6
774
+ t.datetime "updated_at", null: false, precision: 6
775
+ t.index ["shipping_rate_id"], name: "index_spree_shipping_rate_taxes_on_shipping_rate_id"
776
+ t.index ["tax_rate_id"], name: "index_spree_shipping_rate_taxes_on_tax_rate_id"
777
+ end
778
+
779
+ create_table "spree_shipping_rates", force: :cascade do |t|
780
+ t.integer "shipment_id"
781
+ t.integer "shipping_method_id"
782
+ t.boolean "selected", default: false
783
+ t.decimal "cost", precision: 8, scale: 2, default: "0.0"
784
+ t.datetime "created_at", precision: 6
785
+ t.datetime "updated_at", precision: 6
786
+ t.integer "tax_rate_id"
787
+ t.index ["shipment_id", "shipping_method_id"], name: "spree_shipping_rates_join_index", unique: true
788
+ end
789
+
790
+ create_table "spree_state_changes", force: :cascade do |t|
791
+ t.string "name"
792
+ t.string "previous_state"
793
+ t.integer "stateful_id"
794
+ t.integer "user_id"
795
+ t.string "stateful_type"
796
+ t.string "next_state"
797
+ t.datetime "created_at", precision: 6
798
+ t.datetime "updated_at", precision: 6
799
+ t.index ["stateful_id", "stateful_type"], name: "index_spree_state_changes_on_stateful_id_and_stateful_type"
800
+ t.index ["user_id"], name: "index_spree_state_changes_on_user_id"
801
+ end
802
+
803
+ create_table "spree_states", force: :cascade do |t|
804
+ t.string "name"
805
+ t.string "abbr"
806
+ t.integer "country_id"
807
+ t.datetime "updated_at", precision: 6
808
+ t.datetime "created_at", precision: 6
809
+ t.index ["country_id"], name: "index_spree_states_on_country_id"
810
+ end
811
+
812
+ create_table "spree_stock_items", force: :cascade do |t|
813
+ t.integer "stock_location_id"
814
+ t.integer "variant_id"
815
+ t.integer "count_on_hand", default: 0, null: false
816
+ t.datetime "created_at", precision: 6
817
+ t.datetime "updated_at", precision: 6
818
+ t.boolean "backorderable", default: false
819
+ t.datetime "deleted_at"
820
+ t.index ["deleted_at"], name: "index_spree_stock_items_on_deleted_at"
821
+ t.index ["stock_location_id", "variant_id"], name: "stock_item_by_loc_and_var_id"
822
+ t.index ["stock_location_id"], name: "index_spree_stock_items_on_stock_location_id"
823
+
824
+ if connection.supports_partial_index?
825
+ t.index ["variant_id", "stock_location_id"], name: "index_spree_stock_items_on_variant_id_and_stock_location_id", unique: true, where: "deleted_at is null"
826
+ end
827
+ end
828
+
829
+ create_table "spree_stock_locations", force: :cascade do |t|
830
+ t.string "name"
831
+ t.datetime "created_at", precision: 6
832
+ t.datetime "updated_at", precision: 6
833
+ t.boolean "default", default: false, null: false
834
+ t.string "address1"
835
+ t.string "address2"
836
+ t.string "city"
837
+ t.integer "state_id"
838
+ t.string "state_name"
839
+ t.integer "country_id"
840
+ t.string "zipcode"
841
+ t.string "phone"
842
+ t.boolean "active", default: true
843
+ t.boolean "backorderable_default", default: false
844
+ t.boolean "propagate_all_variants", default: true
845
+ t.string "admin_name"
846
+ t.integer "position", default: 0
847
+ t.boolean "restock_inventory", default: true, null: false
848
+ t.boolean "fulfillable", default: true, null: false
849
+ t.string "code"
850
+ t.boolean "check_stock_on_transfer", default: true
851
+ t.index ["country_id"], name: "index_spree_stock_locations_on_country_id"
852
+ t.index ["state_id"], name: "index_spree_stock_locations_on_state_id"
853
+ end
854
+
855
+ create_table "spree_stock_movements", force: :cascade do |t|
856
+ t.integer "stock_item_id"
857
+ t.integer "quantity", default: 0
858
+ t.string "action"
859
+ t.datetime "created_at", null: false, precision: 6
860
+ t.datetime "updated_at", null: false, precision: 6
861
+ t.string "originator_type"
862
+ t.integer "originator_id"
863
+ t.index ["stock_item_id"], name: "index_spree_stock_movements_on_stock_item_id"
864
+ end
865
+
866
+ create_table "spree_store_credit_categories", force: :cascade do |t|
867
+ t.string "name"
868
+ t.datetime "created_at", precision: 6
869
+ t.datetime "updated_at", precision: 6
870
+ end
871
+
872
+ create_table "spree_store_credit_events", force: :cascade do |t|
873
+ t.integer "store_credit_id", null: false
874
+ t.string "action", null: false
875
+ t.decimal "amount", precision: 8, scale: 2
876
+ t.decimal "user_total_amount", precision: 8, scale: 2, default: "0.0", null: false
877
+ t.string "authorization_code", null: false
878
+ t.datetime "deleted_at"
879
+ t.string "originator_type"
880
+ t.integer "originator_id"
881
+ t.datetime "created_at", precision: 6
882
+ t.datetime "updated_at", precision: 6
883
+ t.integer "update_reason_id"
884
+ t.index ["deleted_at"], name: "index_spree_store_credit_events_on_deleted_at"
885
+ t.index ["store_credit_id"], name: "index_spree_store_credit_events_on_store_credit_id"
886
+ end
887
+
888
+ create_table "spree_store_credit_types", force: :cascade do |t|
889
+ t.string "name"
890
+ t.integer "priority"
891
+ t.datetime "created_at", precision: 6
892
+ t.datetime "updated_at", precision: 6
893
+ t.index ["priority"], name: "index_spree_store_credit_types_on_priority"
894
+ end
895
+
896
+ create_table "spree_store_credit_update_reasons", force: :cascade do |t|
897
+ t.string "name"
898
+ t.datetime "created_at", precision: 6
899
+ t.datetime "updated_at", precision: 6
900
+ end
901
+
902
+ create_table "spree_store_credits", force: :cascade do |t|
903
+ t.integer "user_id"
904
+ t.integer "category_id"
905
+ t.integer "created_by_id"
906
+ t.decimal "amount", precision: 8, scale: 2, default: "0.0", null: false
907
+ t.decimal "amount_used", precision: 8, scale: 2, default: "0.0", null: false
908
+ t.decimal "amount_authorized", precision: 8, scale: 2, default: "0.0", null: false
909
+ t.string "currency"
910
+ t.text "memo"
911
+ t.datetime "spree_store_credits"
912
+ t.datetime "deleted_at"
913
+ t.datetime "created_at", precision: 6
914
+ t.datetime "updated_at", precision: 6
915
+ t.integer "type_id"
916
+ t.datetime "invalidated_at"
917
+ t.index ["deleted_at"], name: "index_spree_store_credits_on_deleted_at"
918
+ t.index ["type_id"], name: "index_spree_store_credits_on_type_id"
919
+ t.index ["user_id"], name: "index_spree_store_credits_on_user_id"
920
+ end
921
+
922
+ create_table "spree_store_payment_methods", force: :cascade do |t|
923
+ t.integer "store_id", null: false
924
+ t.integer "payment_method_id", null: false
925
+ t.datetime "created_at", null: false, precision: 6
926
+ t.datetime "updated_at", null: false, precision: 6
927
+ t.index ["payment_method_id"], name: "index_spree_store_payment_methods_on_payment_method_id"
928
+ t.index ["store_id"], name: "index_spree_store_payment_methods_on_store_id"
929
+ end
930
+
931
+ create_table "spree_stores", force: :cascade do |t|
932
+ t.string "name"
933
+ t.string "url"
934
+ t.text "meta_description"
935
+ t.text "meta_keywords"
936
+ t.string "seo_title"
937
+ t.string "mail_from_address"
938
+ t.string "default_currency"
939
+ t.string "code"
940
+ t.boolean "default", default: false, null: false
941
+ t.datetime "created_at", precision: 6
942
+ t.datetime "updated_at", precision: 6
943
+ t.string "cart_tax_country_iso"
944
+ t.index ["code"], name: "index_spree_stores_on_code"
945
+ t.index ["default"], name: "index_spree_stores_on_default"
946
+ end
947
+
948
+ create_table "spree_tax_categories", force: :cascade do |t|
949
+ t.string "name"
950
+ t.string "description"
951
+ t.boolean "is_default", default: false
952
+ t.datetime "deleted_at"
953
+ t.datetime "created_at", precision: 6
954
+ t.datetime "updated_at", precision: 6
955
+ t.string "tax_code"
956
+ end
957
+
958
+ create_table "spree_tax_rates", force: :cascade do |t|
959
+ t.decimal "amount", precision: 8, scale: 5
960
+ t.integer "zone_id"
961
+ t.integer "tax_category_id"
962
+ t.boolean "included_in_price", default: false
963
+ t.datetime "created_at", precision: 6
964
+ t.datetime "updated_at", precision: 6
965
+ t.string "name"
966
+ t.boolean "show_rate_in_label", default: true
967
+ t.datetime "deleted_at"
968
+ t.index ["deleted_at"], name: "index_spree_tax_rates_on_deleted_at"
969
+ t.index ["tax_category_id"], name: "index_spree_tax_rates_on_tax_category_id"
970
+ t.index ["zone_id"], name: "index_spree_tax_rates_on_zone_id"
971
+ end
972
+
973
+ create_table "spree_taxonomies", force: :cascade do |t|
974
+ t.string "name", null: false
975
+ t.datetime "created_at", precision: 6
976
+ t.datetime "updated_at", precision: 6
977
+ t.integer "position", default: 0
978
+ t.index ["position"], name: "index_spree_taxonomies_on_position"
979
+ end
980
+
981
+ create_table "spree_taxons", force: :cascade do |t|
982
+ t.integer "parent_id"
983
+ t.integer "position", default: 0
984
+ t.string "name", null: false
985
+ t.string "permalink"
986
+ t.integer "taxonomy_id"
987
+ t.integer "lft"
988
+ t.integer "rgt"
989
+ t.string "icon_file_name"
990
+ t.string "icon_content_type"
991
+ t.integer "icon_file_size"
992
+ t.datetime "icon_updated_at"
993
+ t.text "description"
994
+ t.datetime "created_at", precision: 6
995
+ t.datetime "updated_at", precision: 6
996
+ t.string "meta_title"
997
+ t.string "meta_description"
998
+ t.string "meta_keywords"
999
+ t.integer "depth"
1000
+ t.index ["parent_id"], name: "index_taxons_on_parent_id"
1001
+ t.index ["permalink"], name: "index_taxons_on_permalink"
1002
+ t.index ["position"], name: "index_spree_taxons_on_position"
1003
+ t.index ["taxonomy_id"], name: "index_taxons_on_taxonomy_id"
1004
+ end
1005
+
1006
+ create_table "spree_unit_cancels", force: :cascade do |t|
1007
+ t.integer "inventory_unit_id", null: false
1008
+ t.string "reason"
1009
+ t.string "created_by"
1010
+ t.datetime "created_at", precision: 6
1011
+ t.datetime "updated_at", precision: 6
1012
+ t.index ["inventory_unit_id"], name: "index_spree_unit_cancels_on_inventory_unit_id"
1013
+ end
1014
+
1015
+ create_table "spree_user_addresses", force: :cascade do |t|
1016
+ t.integer "user_id", null: false
1017
+ t.integer "address_id", null: false
1018
+ t.boolean "default", default: false
1019
+ t.boolean "archived", default: false
1020
+ t.datetime "created_at", null: false, precision: 6
1021
+ t.datetime "updated_at", null: false, precision: 6
1022
+ t.index ["address_id"], name: "index_spree_user_addresses_on_address_id"
1023
+ t.index ["user_id", "address_id"], name: "index_spree_user_addresses_on_user_id_and_address_id", unique: true
1024
+ t.index ["user_id"], name: "index_spree_user_addresses_on_user_id"
1025
+ end
1026
+
1027
+ create_table "spree_user_stock_locations", force: :cascade do |t|
1028
+ t.integer "user_id"
1029
+ t.integer "stock_location_id"
1030
+ t.datetime "created_at", precision: 6
1031
+ t.datetime "updated_at", precision: 6
1032
+ t.index ["user_id"], name: "index_spree_user_stock_locations_on_user_id"
1033
+ end
1034
+
1035
+ create_table "spree_variant_property_rule_conditions", force: :cascade do |t|
1036
+ t.integer "option_value_id"
1037
+ t.integer "variant_property_rule_id"
1038
+ t.datetime "created_at", null: false, precision: 6
1039
+ t.datetime "updated_at", null: false, precision: 6
1040
+ t.index ["variant_property_rule_id", "option_value_id"], name: "index_spree_variant_prop_rule_conditions_on_rule_and_optval"
1041
+ end
1042
+
1043
+ create_table "spree_variant_property_rule_values", force: :cascade do |t|
1044
+ t.text "value"
1045
+ t.integer "position", default: 0
1046
+ t.integer "property_id"
1047
+ t.integer "variant_property_rule_id"
1048
+ t.datetime "created_at", precision: 6
1049
+ t.datetime "updated_at", precision: 6
1050
+ t.index ["property_id"], name: "index_spree_variant_property_rule_values_on_property_id"
1051
+ t.index ["variant_property_rule_id"], name: "index_spree_variant_property_rule_values_on_rule"
1052
+ end
1053
+
1054
+ create_table "spree_variant_property_rules", force: :cascade do |t|
1055
+ t.integer "product_id"
1056
+ t.datetime "created_at", null: false, precision: 6
1057
+ t.datetime "updated_at", null: false, precision: 6
1058
+ t.index ["product_id"], name: "index_spree_variant_property_rules_on_product_id"
1059
+ end
1060
+
1061
+ create_table "spree_variants", force: :cascade do |t|
1062
+ t.string "sku", default: "", null: false
1063
+ t.decimal "weight", precision: 8, scale: 2, default: "0.0"
1064
+ t.decimal "height", precision: 8, scale: 2
1065
+ t.decimal "width", precision: 8, scale: 2
1066
+ t.decimal "depth", precision: 8, scale: 2
1067
+ t.datetime "deleted_at"
1068
+ t.boolean "is_master", default: false
1069
+ t.integer "product_id"
1070
+ t.decimal "cost_price", precision: 10, scale: 2
1071
+ t.integer "position"
1072
+ t.string "cost_currency"
1073
+ t.boolean "track_inventory", default: true
1074
+ t.integer "tax_category_id"
1075
+ t.datetime "updated_at", precision: 6
1076
+ t.datetime "created_at", precision: 6
1077
+ t.index ["position"], name: "index_spree_variants_on_position"
1078
+ t.index ["product_id"], name: "index_spree_variants_on_product_id"
1079
+ t.index ["sku"], name: "index_spree_variants_on_sku"
1080
+ t.index ["tax_category_id"], name: "index_spree_variants_on_tax_category_id"
1081
+ t.index ["track_inventory"], name: "index_spree_variants_on_track_inventory"
1082
+ end
1083
+
1084
+ create_table "spree_zone_members", force: :cascade do |t|
1085
+ t.string "zoneable_type"
1086
+ t.integer "zoneable_id"
1087
+ t.integer "zone_id"
1088
+ t.datetime "created_at", precision: 6
1089
+ t.datetime "updated_at", precision: 6
1090
+ t.index ["zone_id"], name: "index_spree_zone_members_on_zone_id"
1091
+ t.index ["zoneable_id", "zoneable_type"], name: "index_spree_zone_members_on_zoneable_id_and_zoneable_type"
1092
+ end
1093
+
1094
+ create_table "spree_zones", force: :cascade do |t|
1095
+ t.string "name"
1096
+ t.string "description"
1097
+ t.boolean "default_tax", default: false
1098
+ t.integer "zone_members_count", default: 0
1099
+ t.datetime "created_at", precision: 6
1100
+ t.datetime "updated_at", precision: 6
1101
+ end
1102
+ end
1103
+ end