core_merchant 0.10.0 → 0.10.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|