develop #3

Merged
kbe merged 227 commits from develop into main 2025-09-16 14:35:23 +00:00
6 changed files with 35 additions and 23 deletions
Showing only changes of commit 7cdb9f468c - Show all commits

10
Gemfile
View File

@@ -76,4 +76,14 @@ gem "devise", "~> 4.9"
gem "kaminari", "~> 1.2"
gem "kaminari-tailwind", "~> 0.1.0"
# Stripe payment processing
gem "stripe", "~> 15.5"
# PDF generation for tickets
gem "prawn", "~> 2.5"
gem "prawn-qrcode", "~> 0.5"
# QR code generation
gem "rqrcode", "~> 3.1"
# gem "net-pop", "~> 0.1.2"

View File

@@ -182,6 +182,7 @@ GEM
minitest (>= 5.0)
ruby-progressbar
msgpack (1.8.0)
mysql2 (0.5.6)
net-imap (0.5.9)
date
net-protocol
@@ -417,6 +418,7 @@ DEPENDENCIES
kaminari (~> 1.2)
kaminari-tailwind (~> 0.1.0)
minitest-reporters (~> 1.7)
mysql2 (~> 0.5)
prawn (~> 2.5)
prawn-qrcode (~> 0.5)
propshaft

View File

@@ -26,4 +26,5 @@ class User < ApplicationRecord
# Validations
validates :last_name, length: { minimum: 3, maximum: 12, allow_blank: true }
validates :first_name, length: { minimum: 3, maximum: 12, allow_blank: true }
validates :company_name, length: { minimum: 3, maximum: 12, allow_blank: true }
end

View File

@@ -33,21 +33,6 @@
<div class="absolute bottom-0 left-0 right-0 p-6 md:p-8">
<div class="max-w-4xl mx-auto">
<h1 class="text-3xl md:text-4xl font-bold text-white mb-2"><%= @event.name %></h1>
<div class="flex flex-wrap items-center gap-4 text-white/90">
<div class="flex items-center">
<svg class="w-5 h-5 mr-2 text-purple-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path>
</svg>
<span><%= @event.venue_name %></span>
</div>
<div class="flex items-center">
<svg class="w-5 h-5 mr-2 text-purple-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
</svg>
<span><%= @event.start_time.strftime("%d %B %Y à %H:%M") %></span>
</div>
</div>
</div>
</div>
</div>
@@ -109,15 +94,21 @@
</div>
</div>
<div class="mb-8">
<div class="mb-8 bg-gray-50 rounded-xl p-6">
<h3 class="text-lg font-semibold text-gray-900 mb-4">Organisateur</h3>
<div class="flex items-center">
<div class="w-12 h-12 rounded-full bg-gradient-to-r from-purple-500 to-indigo-600 flex items-center justify-center text-white font-bold">
<%= @event.user.email.first.upcase %>
</div>
<div class="ml-4">
<% if @event.user.first_name.present? && @event.user.last_name.present? %>
<p class="font-medium text-gray-900"><%= @event.user.first_name %> <%= @event.user.last_name %></p>
<% else %>
<p class="font-medium text-gray-900"><%= @event.user.email.split('@').first %></p>
<p class="text-sm text-gray-500">Organisateur de l'événement</p>
<% end %>
<% if @event.user.company_name.present? %>
<p class="text-sm text-gray-500"><%= @event.user.company_name %></p>
<% end %>
</div>
</div>
</div>

View File

@@ -36,6 +36,13 @@ class DeviseCreateUsers < ActiveRecord::Migration[8.0]
t.string :last_name, null: true # Nom
t.string :first_name, null: true # Prénom
# Company informations
t.string :company_name, null: true # Nom de la société
# t.string :company_address, null: true # Adresse de la société
# t.string :company_phone, null: true # Téléphone de la société
# t.string :company_email, null: true # Email de la société
# t.string :company_website, null: true # Site web de la société
t.timestamps null: false
end

9
db/schema.rb generated
View File

@@ -11,7 +11,7 @@
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[8.0].define(version: 2025_08_23_171354) do
create_table "events", force: :cascade do |t|
create_table "events", charset: "utf8mb4", collation: "utf8mb4_uca1400_ai_ci", force: :cascade do |t|
t.string "name", null: false
t.string "slug", null: false
t.string "image"
@@ -33,7 +33,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_08_23_171354) do
t.index ["user_id"], name: "index_events_on_user_id"
end
create_table "ticket_types", force: :cascade do |t|
create_table "ticket_types", charset: "utf8mb4", collation: "utf8mb4_uca1400_ai_ci", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "price_cents"
@@ -50,7 +50,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_08_23_171354) do
t.index ["sale_start_at"], name: "index_ticket_types_on_sale_start_at"
end
create_table "tickets", force: :cascade do |t|
create_table "tickets", charset: "utf8mb4", collation: "utf8mb4_uca1400_ai_ci", force: :cascade do |t|
t.string "qr_code"
t.integer "price_cents"
t.string "status", default: "active"
@@ -63,7 +63,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_08_23_171354) do
t.index ["user_id"], name: "index_tickets_on_user_id"
end
create_table "users", force: :cascade do |t|
create_table "users", charset: "utf8mb4", collation: "utf8mb4_uca1400_ai_ci", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
@@ -71,6 +71,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_08_23_171354) do
t.datetime "remember_created_at"
t.string "last_name"
t.string "first_name"
t.string "company_name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["email"], name: "index_users_on_email", unique: true