Added users support
This commit is contained in:
14
db/migrate/20250731113948_create_users.rb
Normal file
14
db/migrate/20250731113948_create_users.rb
Normal file
@@ -0,0 +1,14 @@
|
||||
class CreateUsers < ActiveRecord::Migration[7.1]
|
||||
def change
|
||||
create_table :users do |t|
|
||||
t.string :username
|
||||
t.string :email
|
||||
t.string :password_digest
|
||||
t.references :company, null: false, foreign_key: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
add_index :users, :username, unique: true
|
||||
add_index :users, :email, unique: true
|
||||
end
|
||||
end
|
||||
6
db/migrate/20250731114403_add_email_to_users.rb
Normal file
6
db/migrate/20250731114403_add_email_to_users.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
class AddEmailToUsers < ActiveRecord::Migration[7.1]
|
||||
def change
|
||||
add_column :users, :email, :string
|
||||
add_index :users, :email, unique: true
|
||||
end
|
||||
end
|
||||
15
db/schema.rb
generated
15
db/schema.rb
generated
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[7.1].define(version: 2025_07_04_092438) do
|
||||
ActiveRecord::Schema[7.1].define(version: 2025_07_31_114403) do
|
||||
create_table "companies", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.string "id_number"
|
||||
@@ -66,8 +66,21 @@ ActiveRecord::Schema[7.1].define(version: 2025_07_04_092438) do
|
||||
t.index ["company_id"], name: "index_teams_on_company_id"
|
||||
end
|
||||
|
||||
create_table "users", force: :cascade do |t|
|
||||
t.string "username"
|
||||
t.string "password_digest"
|
||||
t.integer "company_id", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.string "email"
|
||||
t.index ["company_id"], name: "index_users_on_company_id"
|
||||
t.index ["email"], name: "index_users_on_email", unique: true
|
||||
t.index ["username"], name: "index_users_on_username", unique: true
|
||||
end
|
||||
|
||||
add_foreign_key "reservations", "companies"
|
||||
add_foreign_key "reservations", "customers", column: ["customer_first_name", "customer_surname", "customer_original_phone"], primary_key: ["first_name", "surname", "original_phone"]
|
||||
add_foreign_key "reservations", "teams"
|
||||
add_foreign_key "teams", "companies"
|
||||
add_foreign_key "users", "companies"
|
||||
end
|
||||
|
||||
31
db/seeds.rb
31
db/seeds.rb
@@ -7,3 +7,34 @@
|
||||
# ["Action", "Comedy", "Drama", "Horror"].each do |genre_name|
|
||||
# MovieGenre.find_or_create_by!(name: genre_name)
|
||||
# end
|
||||
# Create a default company if none exists
|
||||
default_company = Company.find_or_create_by!(name: 'Default Company') do |company|
|
||||
company.id_number = 'COMP001'
|
||||
company.vat_number = 'VAT001'
|
||||
company.address_line_one = '123 Main Street'
|
||||
company.city = 'Default City'
|
||||
company.country = 'Default Country'
|
||||
end
|
||||
|
||||
# Create default teams for the company
|
||||
teams_data = [
|
||||
{ name: 'Team Alpha' },
|
||||
{ name: 'Team Beta' },
|
||||
{ name: 'Team Gamma' }
|
||||
]
|
||||
|
||||
teams_data.each do |team_attrs|
|
||||
Team.find_or_create_by!(name: team_attrs[:name], company: default_company)
|
||||
end
|
||||
|
||||
puts "Seeded default company: #{default_company.name}"
|
||||
puts "Seeded #{default_company.teams.count} teams"
|
||||
|
||||
# Create default user for the company
|
||||
default_user = User.find_or_create_by!(username: 'admin', company: default_company) do |user|
|
||||
user.email = 'admin@company.ba'
|
||||
user.password = 'password123'
|
||||
user.password_confirmation = 'password123'
|
||||
end
|
||||
|
||||
puts "Seeded default user: #{default_user.username} (#{default_user.email})"
|
||||
|
||||
Reference in New Issue
Block a user