feat(promotion code): Promotion code system done

I added the features for users to use promotion code
and for promoters to create on their events.
May be rewrite to discount code?
This commit is contained in:
kbe
2025-09-29 15:25:52 +02:00
parent 72d54e02ab
commit 87ccebf229
19 changed files with 391 additions and 302 deletions

View File

@@ -1,14 +1,15 @@
class CreateOrders < ActiveRecord::Migration[8.0]
def change
create_table :orders do |t|
t.references :user, null: false, foreign_key: false
t.references :event, null: false, foreign_key: false
t.string :status, null: false, default: "draft"
t.integer :total_amount_cents, null: false, default: 0
t.integer :payment_attempts, null: false, default: 0
t.timestamp :expires_at
t.timestamp :last_payment_attempt_at
t.references :user, null: false, foreign_key: false
t.references :event, null: false, foreign_key: false
t.timestamps
end

View File

@@ -7,8 +7,12 @@ class CreatePromotionCodes < ActiveRecord::Migration[8.0]
t.boolean :active, default: true, null: false
t.integer :usage_limit, default: nil
t.integer :uses_count, default: 0, null: false
t.datetime :created_at, null: false
t.datetime :updated_at, null: false
# Reference user(promoter) who has created the promotion code
t.references :user, null: false, foreign_key: true
t.references :event, null: false, foreign_key: true
t.timestamps
end
# Unique index for code