first upload all files
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateAddressesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('addresses', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->integer('customer_id')->unsigned();
|
||||
$table->string('first_name');
|
||||
$table->string('last_name');
|
||||
$table->string('address_1');
|
||||
$table->string('address_2')->nullable();
|
||||
$table->string('city');
|
||||
$table->string('state');
|
||||
$table->string('zip');
|
||||
$table->string('country');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('customer_id')->references('id')->on('users')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('addresses');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateDefaultAddressesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('default_addresses', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->integer('customer_id')->unsigned();
|
||||
$table->integer('address_id')->unsigned();
|
||||
|
||||
$table->foreign('customer_id')->references('id')->on('users')->onDelete('cascade');
|
||||
$table->foreign('address_id')->references('id')->on('addresses')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('default_addresses');
|
||||
}
|
||||
}
|
||||
35
Modules/Address/Entities/Address.php
Normal file
35
Modules/Address/Entities/Address.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Address\Entities;
|
||||
|
||||
use Modules\Support\State;
|
||||
use Modules\Support\Country;
|
||||
use Modules\User\Entities\User;
|
||||
use Modules\Support\Eloquent\Model;
|
||||
|
||||
class Address extends Model
|
||||
{
|
||||
protected $fillable = ['first_name', 'last_name', 'address_1', 'address_2', 'city', 'state', 'zip', 'country'];
|
||||
|
||||
protected $appends = ['full_name', 'state_name', 'country_name'];
|
||||
|
||||
public function customer()
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
|
||||
public function getFullNameAttribute()
|
||||
{
|
||||
return $this->first_name . ' ' . $this->last_name;
|
||||
}
|
||||
|
||||
public function getStateNameAttribute()
|
||||
{
|
||||
return State::name($this->country, $this->state);
|
||||
}
|
||||
|
||||
public function getCountryNameAttribute()
|
||||
{
|
||||
return Country::name($this->country);
|
||||
}
|
||||
}
|
||||
49
Modules/Address/Entities/DefaultAddress.php
Normal file
49
Modules/Address/Entities/DefaultAddress.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Address\Entities;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class DefaultAddress extends Model
|
||||
{
|
||||
protected $with = ['address'];
|
||||
|
||||
protected $fillable = ['customer_id', 'address_id'];
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
public function address()
|
||||
{
|
||||
return $this->belongsTo(Address::class);
|
||||
}
|
||||
|
||||
public function getAddress1Attribute()
|
||||
{
|
||||
return $this->address->address_1;
|
||||
}
|
||||
|
||||
public function getAddress2Attribute()
|
||||
{
|
||||
return $this->address->address_1;
|
||||
}
|
||||
|
||||
public function getCityAttribute()
|
||||
{
|
||||
return $this->address->city;
|
||||
}
|
||||
|
||||
public function getStateAttribute()
|
||||
{
|
||||
return $this->address->state;
|
||||
}
|
||||
|
||||
public function getZipAttribute()
|
||||
{
|
||||
return $this->address->zip;
|
||||
}
|
||||
|
||||
public function getCountryAttribute()
|
||||
{
|
||||
return $this->address->country;
|
||||
}
|
||||
}
|
||||
27
Modules/Address/composer.json
Normal file
27
Modules/Address/composer.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "fleetcart/address",
|
||||
"description": "The FleetCart Address Module.",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Envay Soft",
|
||||
"email": "envaysoft@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Address\\": ""
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"minimum-stability": "dev"
|
||||
}
|
||||
6
Modules/Address/module.json
Normal file
6
Modules/Address/module.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "Address",
|
||||
"alias": "address",
|
||||
"description": "The FleetCart Address Module.",
|
||||
"priority": 100
|
||||
}
|
||||
Reference in New Issue
Block a user