initial commit
This commit is contained in:
		
							
								
								
									
										35
									
								
								src/database/factories/AddressFactory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/database/factories/AddressFactory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace Database\Factories;
 | 
			
		||||
 | 
			
		||||
use App\Models\Address;
 | 
			
		||||
use Illuminate\Database\Eloquent\Factories\Factory;
 | 
			
		||||
 | 
			
		||||
class AddressFactory extends Factory
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * The name of the factory's corresponding model.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $model = Address::class;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Define the model's default state.
 | 
			
		||||
     *
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function definition()
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'street'      => $this->faker->buildingNumber() . ' ' . $this->faker->streetName(),
 | 
			
		||||
            'unit'        => mt_rand(1, 10) === 10 ? $this->faker->secondaryAddress() : null,
 | 
			
		||||
            'city'        => $this->faker->city(),
 | 
			
		||||
            'state'       => $this->faker->state(),
 | 
			
		||||
            'postal_code' => $this->faker->postcode(),
 | 
			
		||||
            'country'     => 'United States',
 | 
			
		||||
            'latitude'    => $this->faker->latitude(),
 | 
			
		||||
            'longitude'   => $this->faker->longitude(),
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								src/database/factories/UserFactory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								src/database/factories/UserFactory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace Database\Factories;
 | 
			
		||||
 | 
			
		||||
use App\Models\Team;
 | 
			
		||||
use App\Models\User;
 | 
			
		||||
use Illuminate\Database\Eloquent\Factories\Factory;
 | 
			
		||||
use Illuminate\Support\Str;
 | 
			
		||||
use Laravel\Jetstream\Features;
 | 
			
		||||
 | 
			
		||||
class UserFactory extends Factory
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * The name of the factory's corresponding model.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $model = User::class;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Define the model's default state.
 | 
			
		||||
     *
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function definition()
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'name'              => $this->faker->firstName(),
 | 
			
		||||
            'surname'           => $this->faker->lastName(),
 | 
			
		||||
            'username'          => $this->faker->unique()->userName(),
 | 
			
		||||
            'email'             => $this->faker->unique()->safeEmail(),
 | 
			
		||||
            'email_verified_at' => now(),
 | 
			
		||||
            'timezone_name'     => $this->faker->timezone(),
 | 
			
		||||
            'password'          => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
 | 
			
		||||
            'remember_token'    => Str::random(10),
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Indicate that the model's email address should be unverified.
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Illuminate\Database\Eloquent\Factories\Factory
 | 
			
		||||
     */
 | 
			
		||||
    public function unverified()
 | 
			
		||||
    {
 | 
			
		||||
        return $this->state(function (array $attributes) {
 | 
			
		||||
            return [
 | 
			
		||||
                'email_verified_at' => null,
 | 
			
		||||
            ];
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Indicate that the user should have a personal team.
 | 
			
		||||
     *
 | 
			
		||||
     * @return $this
 | 
			
		||||
     */
 | 
			
		||||
    public function withPersonalTeam()
 | 
			
		||||
    {
 | 
			
		||||
        if (! Features::hasTeamFeatures()) {
 | 
			
		||||
            return $this->state([]);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $this->has(
 | 
			
		||||
            Team::factory()
 | 
			
		||||
                ->state(function (array $attributes, User $user) {
 | 
			
		||||
                    return ['name' => $user->name.'\'s Team', 'user_id' => $user->id, 'personal_team' => true];
 | 
			
		||||
                }),
 | 
			
		||||
            'ownedTeams'
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,43 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
use Illuminate\Database\Migrations\Migration;
 | 
			
		||||
use Illuminate\Database\Schema\Blueprint;
 | 
			
		||||
use Illuminate\Support\Facades\Schema;
 | 
			
		||||
 | 
			
		||||
class CreateUsersTable extends Migration
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Run the migrations.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function up()
 | 
			
		||||
    {
 | 
			
		||||
        Schema::create('users', function (Blueprint $table) {
 | 
			
		||||
            $table->string('id', 64)->primary();
 | 
			
		||||
            $table->string('name');
 | 
			
		||||
            $table->string('surname');
 | 
			
		||||
            $table->string('email')->unique();
 | 
			
		||||
            $table->timestamp('email_verified_at')->nullable();
 | 
			
		||||
            $table->string('timezone_name')->default('UTC');
 | 
			
		||||
            $table->string('current_team_id', 64)->nullable();
 | 
			
		||||
            $table->string('profile_photo_path', 2048)->nullable();
 | 
			
		||||
            $table->string('password');
 | 
			
		||||
            $table->text('two_factor_secret')->nullable();
 | 
			
		||||
            $table->text('two_factor_recovery_codes')->nullable();
 | 
			
		||||
            $table->rememberToken();
 | 
			
		||||
            $table->timestamp('created_at')->useCurrent();
 | 
			
		||||
            $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Reverse the migrations.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function down()
 | 
			
		||||
    {
 | 
			
		||||
        Schema::dropIfExists('users');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,44 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
use Illuminate\Database\Migrations\Migration;
 | 
			
		||||
use Illuminate\Database\Schema\Blueprint;
 | 
			
		||||
use Illuminate\Support\Facades\Schema;
 | 
			
		||||
 | 
			
		||||
class CreateAddressesTable extends Migration
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Run the migrations.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function up()
 | 
			
		||||
    {
 | 
			
		||||
        Schema::create('addresses', function (Blueprint $table) {
 | 
			
		||||
            $table->string('id', 64)->primary();
 | 
			
		||||
            $table->uuidMorphs('addressable');
 | 
			
		||||
            $table->string('street');
 | 
			
		||||
            $table->string('unit')->nullable();
 | 
			
		||||
            $table->string('city');
 | 
			
		||||
            $table->string('state');
 | 
			
		||||
            $table->string('postal_code'); // leave as string to accomodate 12345-6789 or Canada
 | 
			
		||||
            $table->string('country')->default('United States');
 | 
			
		||||
            $table->float('latitude', 12, 9)->index()->nullable();
 | 
			
		||||
            $table->float('longitude', 12, 9)->index()->nullable();
 | 
			
		||||
            $table->point('location')->nullable();
 | 
			
		||||
            $table->timestamp('created_at')->useCurrent();
 | 
			
		||||
            $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
 | 
			
		||||
 | 
			
		||||
            $table->spatialIndex('location');
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Reverse the migrations.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function down()
 | 
			
		||||
    {
 | 
			
		||||
        Schema::dropIfExists('addresses');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user