core_merchant 0.10.0 → 0.10.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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/core_merchant/concerns/subscription_event_association.rb +5 -0
- data/lib/core_merchant/subscription.rb +1 -0
- data/lib/core_merchant/subscription_event.rb +0 -4
- data/lib/core_merchant/subscription_manager.rb +5 -0
- data/lib/core_merchant/version.rb +1 -1
- data/lib/generators/core_merchant/install_generator.rb +4 -8
- data/lib/generators/core_merchant/templates/migrate/create_core_merchant_tables.erb +47 -0
- metadata +3 -5
- data/lib/generators/core_merchant/templates/migrate/create_core_merchant_subscription_events.erb +0 -14
- data/lib/generators/core_merchant/templates/migrate/create_core_merchant_subscription_plans.erb +0 -16
- data/lib/generators/core_merchant/templates/migrate/create_core_merchant_subscriptions.erb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fadff8a1997d56c7aeaed293ac6e675dfb7b2bd310abc209607d20ef87ca336
|
4
|
+
data.tar.gz: c36ba36b69437b96fd0e14bb230e8a08cea03db802fdb2492ab5af7eb8eab594
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bec0145aec16c30230e2f756de3ba843bf487d5861128b7417ce3643192b7c0d67fa7cadbb20e642eccc6015f5b67c779339399e3a298b4eb1c1e597c11be53b
|
7
|
+
data.tar.gz: 7b7fc60c7e21840887603f2fc0a223f0394d6b73b7a3ec2e49b17dd4cfeafd663a335ec6408c379ba2e94a184abb5d45b5f4e6982d566a474b1180661d93c446
|
data/Gemfile.lock
CHANGED
@@ -10,6 +10,7 @@ module CoreMerchant
|
|
10
10
|
|
11
11
|
included do
|
12
12
|
has_many :events, class_name: "SubscriptionEvent", dependent: :destroy
|
13
|
+
after_update :create_status_change_event, if: :saved_change_to_status?
|
13
14
|
|
14
15
|
EVENT_TYPES.each do |event_type|
|
15
16
|
scope_name = "#{event_type}_events".to_sym
|
@@ -21,6 +22,10 @@ module CoreMerchant
|
|
21
22
|
events.create!(event_type: event_type, metadata: metadata)
|
22
23
|
end
|
23
24
|
end
|
25
|
+
|
26
|
+
def create_status_change_event
|
27
|
+
status_change_events.create!(from: saved_changes["status"].first, to: status)
|
28
|
+
end
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
@@ -123,6 +123,7 @@ module CoreMerchant
|
|
123
123
|
end
|
124
124
|
|
125
125
|
notify_subscription_manager(:canceled, reason: reason, immediate: !at_period_end)
|
126
|
+
cancellation_events.create!(reason: reason, at_period_end: at_period_end)
|
126
127
|
end
|
127
128
|
|
128
129
|
# Starts a new period for the subscription.
|
@@ -104,6 +104,11 @@ module CoreMerchant
|
|
104
104
|
return unless subscription.transition_to_active
|
105
105
|
|
106
106
|
subscription.start_new_period
|
107
|
+
subscription.renewal_events.create!(
|
108
|
+
price_cents: subscription.subscription_plan.price_cents,
|
109
|
+
renewed_from: subscription.current_period_start, renewed_until: subscription.current_period_end
|
110
|
+
)
|
111
|
+
|
107
112
|
notify(subscription, :renewed)
|
108
113
|
end
|
109
114
|
|
@@ -23,14 +23,10 @@ module CoreMerchant
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def create_migration_file
|
26
|
-
migration_template
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
"db/migrate/create_core_merchant_subscriptions.rb"
|
31
|
-
|
32
|
-
migration_template "migrate/create_core_merchant_subscription_events.erb",
|
33
|
-
"db/migrate/create_core_merchant_subscription_events.rb"
|
26
|
+
migration_template(
|
27
|
+
"migrate/create_core_merchant_tables.erb",
|
28
|
+
"db/migrate/create_core_merchant_tables.rb"
|
29
|
+
)
|
34
30
|
end
|
35
31
|
|
36
32
|
def show_post_install
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class CreateCoreMerchantTables < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
|
2
|
+
def change
|
3
|
+
create_table :core_merchant_subscription_plans do |t|
|
4
|
+
t.string :name_key, null: false
|
5
|
+
t.integer :price_cents, null: false, default: 0
|
6
|
+
t.string :duration, null: false
|
7
|
+
t.integer :introductory_price_cents
|
8
|
+
t.string :introductory_duration
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
|
12
|
+
t.index :name_key, unique: true
|
13
|
+
end
|
14
|
+
|
15
|
+
create_table :core_merchant_subscriptions do |t|
|
16
|
+
t.references :customer, polymorphic: true, null: false
|
17
|
+
t.references :subscription_plan, null: false
|
18
|
+
t.integer :status, null: false, default: 0
|
19
|
+
t.datetime :canceled_at
|
20
|
+
t.string :cancellation_reason
|
21
|
+
|
22
|
+
t.datetime :start_date, null: false
|
23
|
+
t.datetime :trial_end_date
|
24
|
+
t.datetime :end_date
|
25
|
+
t.datetime :current_period_start_date
|
26
|
+
t.datetime :current_period_end_date
|
27
|
+
t.datetime :pause_start_date
|
28
|
+
t.datetime :pause_end_date
|
29
|
+
|
30
|
+
t.integer :current_period_price_cents
|
31
|
+
|
32
|
+
t.timestamps
|
33
|
+
|
34
|
+
t.index :status
|
35
|
+
end
|
36
|
+
|
37
|
+
create_table :core_merchant_subscription_events do |t|
|
38
|
+
t.references :subscription, null: false
|
39
|
+
t.string :event_type, null: false
|
40
|
+
t.json :metadata
|
41
|
+
|
42
|
+
t.timestamps
|
43
|
+
|
44
|
+
t.index :event_type
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: core_merchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seyithan Teymur
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -158,9 +158,7 @@ files:
|
|
158
158
|
- lib/generators/core_merchant/install_generator.rb
|
159
159
|
- lib/generators/core_merchant/templates/core_merchant.en.yml
|
160
160
|
- lib/generators/core_merchant/templates/core_merchant.rb
|
161
|
-
- lib/generators/core_merchant/templates/migrate/
|
162
|
-
- lib/generators/core_merchant/templates/migrate/create_core_merchant_subscription_plans.erb
|
163
|
-
- lib/generators/core_merchant/templates/migrate/create_core_merchant_subscriptions.erb
|
161
|
+
- lib/generators/core_merchant/templates/migrate/create_core_merchant_tables.erb
|
164
162
|
- sig/core_merchant.rbs
|
165
163
|
homepage: https://github.com/theseyithan/core_merchant
|
166
164
|
licenses:
|
data/lib/generators/core_merchant/templates/migrate/create_core_merchant_subscription_events.erb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# Created by: rails generate core_merchant:install
|
2
|
-
class CreateCoreMerchantSubscriptionEvents < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
|
3
|
-
def change
|
4
|
-
create_table :core_merchant_subscription_events do |t|
|
5
|
-
t.references :subscription, null: false, foreign_key: { to_table: :core_merchant_subscriptions }
|
6
|
-
t.string :event_type, null: false
|
7
|
-
t.jsonb :metadata, default: {}, null: false
|
8
|
-
|
9
|
-
t.timestamps
|
10
|
-
|
11
|
-
t.index :event_type
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/lib/generators/core_merchant/templates/migrate/create_core_merchant_subscription_plans.erb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# Created by: rails generate core_merchant:install
|
2
|
-
class CreateCoreMerchantSubscriptionPlans < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
|
3
|
-
def change
|
4
|
-
create_table :core_merchant_subscription_plans do |t|
|
5
|
-
t.string :name_key, null: false
|
6
|
-
t.integer :price_cents, null: false, default: 0
|
7
|
-
t.string :duration, null: false
|
8
|
-
t.integer :introductory_price_cents
|
9
|
-
t.string :introductory_duration
|
10
|
-
|
11
|
-
t.timestamps
|
12
|
-
|
13
|
-
t.index :name_key, unique: true
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# Created by: rails generate core_merchant:install
|
2
|
-
class CreateCoreMerchantSubscriptions < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
|
3
|
-
def change
|
4
|
-
create_table :core_merchant_subscriptions do |t|
|
5
|
-
t.references :customer, polymorphic: true, null: false
|
6
|
-
t.references :subscription_plan, null: false
|
7
|
-
t.integer :status, null: false, default: 0
|
8
|
-
t.datetime :canceled_at
|
9
|
-
t.string :cancellation_reason
|
10
|
-
|
11
|
-
t.datetime :start_date, null: false
|
12
|
-
t.datetime :trial_end_date
|
13
|
-
t.datetime :end_date
|
14
|
-
t.datetime :current_period_start_date
|
15
|
-
t.datetime :current_period_end_date
|
16
|
-
t.datetime :pause_start_date
|
17
|
-
t.datetime :pause_end_date
|
18
|
-
|
19
|
-
t.integer :current_period_price_cents
|
20
|
-
|
21
|
-
t.timestamps
|
22
|
-
|
23
|
-
t.index :status
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|