migrate to gtea from bistbucket
This commit is contained in:
220
config/app.php
Normal file
220
config/app.php
Normal file
@@ -0,0 +1,220 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Facade;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This value is the name of your application. This value is used when the
|
||||
| framework needs to place the application's name in a notification or
|
||||
| any other location as required by the application or its packages.
|
||||
|
|
||||
*/
|
||||
|
||||
'name' => env('APP_NAME', 'Laravel'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Environment
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This value determines the "environment" your application is currently
|
||||
| running in. This may determine how you prefer to configure various
|
||||
| services the application utilizes. Set this in your ".env" file.
|
||||
|
|
||||
*/
|
||||
|
||||
'env' => env('APP_ENV', 'production'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Debug Mode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When your application is in debug mode, detailed error messages with
|
||||
| stack traces will be shown on every error that occurs within your
|
||||
| application. If disabled, a simple generic error page is shown.
|
||||
|
|
||||
*/
|
||||
|
||||
'debug' => (bool) env('APP_DEBUG', false),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application URL
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This URL is used by the console to properly generate URLs when using
|
||||
| the Artisan command line tool. You should set this to the root of
|
||||
| your application so that it is used when running Artisan tasks.
|
||||
|
|
||||
*/
|
||||
|
||||
'url' => env('APP_URL', 'http://localhost'),
|
||||
|
||||
'asset_url' => env('ASSET_URL'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Timezone
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify the default timezone for your application, which
|
||||
| will be used by the PHP date and date-time functions. We have gone
|
||||
| ahead and set this to a sensible default for you out of the box.
|
||||
|
|
||||
*/
|
||||
|
||||
'timezone' => env('TIMEZONE', 'Asia/Dhaka'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Locale Configuration
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The application locale determines the default locale that will be used
|
||||
| by the translation service provider. You are free to set this value
|
||||
| to any of the locales which will be supported by the application.
|
||||
|
|
||||
*/
|
||||
|
||||
'locale' => 'en',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Application Fallback Locale
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The fallback locale determines the locale to use when the current one
|
||||
| is not available. You may change the value to correspond to any of
|
||||
| the language folders that are provided through your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'fallback_locale' => 'en',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Faker Locale
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This locale will be used by the Faker PHP library when generating fake
|
||||
| data for your database seeds. For example, this will be used to get
|
||||
| localized telephone numbers, street address information and more.
|
||||
|
|
||||
*/
|
||||
|
||||
'faker_locale' => 'en_US',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Encryption Key
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This key is used by the Illuminate encrypter service and should be set
|
||||
| to a random, 32 character string, otherwise these encrypted strings
|
||||
| will not be safe. Please do this before deploying an application!
|
||||
|
|
||||
*/
|
||||
|
||||
'key' => env('APP_KEY'),
|
||||
|
||||
'cipher' => 'AES-256-CBC',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Maintenance Mode Driver
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These configuration options determine the driver used to determine and
|
||||
| manage Laravel's "maintenance mode" status. The "cache" driver will
|
||||
| allow maintenance mode to be controlled across multiple machines.
|
||||
|
|
||||
| Supported drivers: "file", "cache"
|
||||
|
|
||||
*/
|
||||
|
||||
'maintenance' => [
|
||||
'driver' => 'file',
|
||||
// 'store' => 'redis',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Autoloaded Service Providers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The service providers listed here will be automatically loaded on the
|
||||
| request to your application. Feel free to add your own services to
|
||||
| this array to grant expanded functionality to your applications.
|
||||
|
|
||||
*/
|
||||
|
||||
'providers' => [
|
||||
|
||||
/*
|
||||
* Laravel Framework Service Providers...
|
||||
*/
|
||||
Illuminate\Auth\AuthServiceProvider::class,
|
||||
Illuminate\Broadcasting\BroadcastServiceProvider::class,
|
||||
Illuminate\Bus\BusServiceProvider::class,
|
||||
Illuminate\Cache\CacheServiceProvider::class,
|
||||
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
|
||||
Illuminate\Cookie\CookieServiceProvider::class,
|
||||
Illuminate\Database\DatabaseServiceProvider::class,
|
||||
Illuminate\Encryption\EncryptionServiceProvider::class,
|
||||
Illuminate\Filesystem\FilesystemServiceProvider::class,
|
||||
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
|
||||
Illuminate\Hashing\HashServiceProvider::class,
|
||||
Illuminate\Mail\MailServiceProvider::class,
|
||||
Illuminate\Notifications\NotificationServiceProvider::class,
|
||||
Illuminate\Pagination\PaginationServiceProvider::class,
|
||||
Illuminate\Pipeline\PipelineServiceProvider::class,
|
||||
Illuminate\Queue\QueueServiceProvider::class,
|
||||
Illuminate\Redis\RedisServiceProvider::class,
|
||||
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
|
||||
Illuminate\Session\SessionServiceProvider::class,
|
||||
Illuminate\Translation\TranslationServiceProvider::class,
|
||||
Illuminate\Validation\ValidationServiceProvider::class,
|
||||
Illuminate\View\ViewServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Package Service Providers...
|
||||
*/
|
||||
Gloudemans\Shoppingcart\ShoppingcartServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Application Service Providers...
|
||||
*/
|
||||
App\Providers\AppServiceProvider::class,
|
||||
App\Providers\AuthServiceProvider::class,
|
||||
// App\Providers\BroadcastServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
Spatie\Permission\PermissionServiceProvider::class,
|
||||
Gloudemans\Shoppingcart\ShoppingcartServiceProvider::class,
|
||||
AgeekDev\Barcode\BarcodeServiceProvider::class,
|
||||
Laravel\Socialite\SocialiteServiceProvider::class,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Class Aliases
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This array of class aliases will be registered when this application
|
||||
| is started. However, feel free to register as many as you wish as
|
||||
| the aliases are "lazy" loaded so they don't hinder performance.
|
||||
|
|
||||
*/
|
||||
|
||||
'aliases' => Facade::defaultAliases()->merge([
|
||||
'Cart' => Gloudemans\Shoppingcart\Facades\Cart::class,
|
||||
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
|
||||
])->toArray(),
|
||||
|
||||
];
|
||||
111
config/auth.php
Normal file
111
config/auth.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Defaults
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default authentication "guard" and password
|
||||
| reset options for your application. You may change these defaults
|
||||
| as required, but they're a perfect start for most applications.
|
||||
|
|
||||
*/
|
||||
|
||||
'defaults' => [
|
||||
'guard' => 'web',
|
||||
'passwords' => 'users',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Guards
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Next, you may define every authentication guard for your application.
|
||||
| Of course, a great default configuration has been defined for you
|
||||
| here which uses session storage and the Eloquent user provider.
|
||||
|
|
||||
| All authentication drivers have a user provider. This defines how the
|
||||
| users are actually retrieved out of your database or other storage
|
||||
| mechanisms used by this application to persist your user's data.
|
||||
|
|
||||
| Supported: "session"
|
||||
|
|
||||
*/
|
||||
|
||||
'guards' => [
|
||||
'web' => [
|
||||
'driver' => 'session',
|
||||
'provider' => 'users',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| User Providers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| All authentication drivers have a user provider. This defines how the
|
||||
| users are actually retrieved out of your database or other storage
|
||||
| mechanisms used by this application to persist your user's data.
|
||||
|
|
||||
| If you have multiple user tables or models you may configure multiple
|
||||
| sources which represent each model / table. These sources may then
|
||||
| be assigned to any extra authentication guards you have defined.
|
||||
|
|
||||
| Supported: "database", "eloquent"
|
||||
|
|
||||
*/
|
||||
|
||||
'providers' => [
|
||||
'users' => [
|
||||
'driver' => 'eloquent',
|
||||
'model' => App\Models\User::class,
|
||||
],
|
||||
|
||||
// 'users' => [
|
||||
// 'driver' => 'database',
|
||||
// 'table' => 'users',
|
||||
// ],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Resetting Passwords
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| You may specify multiple password reset configurations if you have more
|
||||
| than one user table or model in the application and you want to have
|
||||
| separate password reset settings based on the specific user types.
|
||||
|
|
||||
| The expire time is the number of minutes that each reset token will be
|
||||
| considered valid. This security feature keeps tokens short-lived so
|
||||
| they have less time to be guessed. You may change this as needed.
|
||||
|
|
||||
*/
|
||||
|
||||
'passwords' => [
|
||||
'users' => [
|
||||
'provider' => 'users',
|
||||
'table' => 'password_resets',
|
||||
'expire' => 60,
|
||||
'throttle' => 60,
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Confirmation Timeout
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may define the amount of seconds before a password confirmation
|
||||
| times out and the user is prompted to re-enter their password via the
|
||||
| confirmation screen. By default, the timeout lasts for three hours.
|
||||
|
|
||||
*/
|
||||
|
||||
'password_timeout' => 10800,
|
||||
|
||||
];
|
||||
70
config/broadcasting.php
Normal file
70
config/broadcasting.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Broadcaster
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default broadcaster that will be used by the
|
||||
| framework when an event needs to be broadcast. You may set this to
|
||||
| any of the connections defined in the "connections" array below.
|
||||
|
|
||||
| Supported: "pusher", "ably", "redis", "log", "null"
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('BROADCAST_DRIVER', 'null'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Broadcast Connections
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may define all of the broadcast connections that will be used
|
||||
| to broadcast events to other systems or over websockets. Samples of
|
||||
| each available type of connection are provided inside this array.
|
||||
|
|
||||
*/
|
||||
|
||||
'connections' => [
|
||||
|
||||
'pusher' => [
|
||||
'driver' => 'pusher',
|
||||
'key' => env('PUSHER_APP_KEY'),
|
||||
'secret' => env('PUSHER_APP_SECRET'),
|
||||
'app_id' => env('PUSHER_APP_ID'),
|
||||
'options' => [
|
||||
'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
|
||||
'port' => env('PUSHER_PORT', 443),
|
||||
'scheme' => env('PUSHER_SCHEME', 'https'),
|
||||
'encrypted' => true,
|
||||
'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
|
||||
],
|
||||
'client_options' => [
|
||||
// Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
|
||||
],
|
||||
],
|
||||
|
||||
'ably' => [
|
||||
'driver' => 'ably',
|
||||
'key' => env('ABLY_KEY'),
|
||||
],
|
||||
|
||||
'redis' => [
|
||||
'driver' => 'redis',
|
||||
'connection' => 'default',
|
||||
],
|
||||
|
||||
'log' => [
|
||||
'driver' => 'log',
|
||||
],
|
||||
|
||||
'null' => [
|
||||
'driver' => 'null',
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
];
|
||||
110
config/cache.php
Normal file
110
config/cache.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Cache Store
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default cache connection that gets used while
|
||||
| using this caching library. This connection is used when another is
|
||||
| not explicitly specified when executing a given caching function.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('CACHE_DRIVER', 'file'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cache Stores
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may define all of the cache "stores" for your application as
|
||||
| well as their drivers. You may even define multiple stores for the
|
||||
| same cache driver to group types of items stored in your caches.
|
||||
|
|
||||
| Supported drivers: "apc", "array", "database", "file",
|
||||
| "memcached", "redis", "dynamodb", "octane", "null"
|
||||
|
|
||||
*/
|
||||
|
||||
'stores' => [
|
||||
|
||||
'apc' => [
|
||||
'driver' => 'apc',
|
||||
],
|
||||
|
||||
'array' => [
|
||||
'driver' => 'array',
|
||||
'serialize' => false,
|
||||
],
|
||||
|
||||
'database' => [
|
||||
'driver' => 'database',
|
||||
'table' => 'cache',
|
||||
'connection' => null,
|
||||
'lock_connection' => null,
|
||||
],
|
||||
|
||||
'file' => [
|
||||
'driver' => 'file',
|
||||
'path' => storage_path('framework/cache/data'),
|
||||
],
|
||||
|
||||
'memcached' => [
|
||||
'driver' => 'memcached',
|
||||
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
|
||||
'sasl' => [
|
||||
env('MEMCACHED_USERNAME'),
|
||||
env('MEMCACHED_PASSWORD'),
|
||||
],
|
||||
'options' => [
|
||||
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
|
||||
],
|
||||
'servers' => [
|
||||
[
|
||||
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
|
||||
'port' => env('MEMCACHED_PORT', 11211),
|
||||
'weight' => 100,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'redis' => [
|
||||
'driver' => 'redis',
|
||||
'connection' => 'cache',
|
||||
'lock_connection' => 'default',
|
||||
],
|
||||
|
||||
'dynamodb' => [
|
||||
'driver' => 'dynamodb',
|
||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
||||
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
|
||||
'endpoint' => env('DYNAMODB_ENDPOINT'),
|
||||
],
|
||||
|
||||
'octane' => [
|
||||
'driver' => 'octane',
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cache Key Prefix
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When utilizing the APC, database, memcached, Redis, or DynamoDB cache
|
||||
| stores there might be other applications using the same cache. For
|
||||
| that reason, you may prefix every cache key to avoid collisions.
|
||||
|
|
||||
*/
|
||||
|
||||
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
|
||||
|
||||
];
|
||||
34
config/cors.php
Normal file
34
config/cors.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cross-Origin Resource Sharing (CORS) Configuration
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure your settings for cross-origin resource sharing
|
||||
| or "CORS". This determines what cross-origin operations may execute
|
||||
| in web browsers. You are free to adjust these settings as needed.
|
||||
|
|
||||
| To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
||||
|
|
||||
*/
|
||||
|
||||
'paths' => ['api/*', 'sanctum/csrf-cookie'],
|
||||
|
||||
'allowed_methods' => ['*'],
|
||||
|
||||
'allowed_origins' => ['*'],
|
||||
|
||||
'allowed_origins_patterns' => [],
|
||||
|
||||
'allowed_headers' => ['*'],
|
||||
|
||||
'exposed_headers' => [],
|
||||
|
||||
'max_age' => 0,
|
||||
|
||||
'supports_credentials' => false,
|
||||
|
||||
];
|
||||
151
config/database.php
Normal file
151
config/database.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Database Connection Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify which of the database connections below you wish
|
||||
| to use as your default connection for all database work. Of course
|
||||
| you may use many connections at once using the Database library.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('DB_CONNECTION', 'mysql'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Database Connections
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here are each of the database connections setup for your application.
|
||||
| Of course, examples of configuring each database platform that is
|
||||
| supported by Laravel is shown below to make development simple.
|
||||
|
|
||||
|
|
||||
| All database work in Laravel is done through the PHP PDO facilities
|
||||
| so make sure you have the driver for your particular database of
|
||||
| choice installed on your machine before you begin development.
|
||||
|
|
||||
*/
|
||||
|
||||
'connections' => [
|
||||
|
||||
'sqlite' => [
|
||||
'driver' => 'sqlite',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||
'prefix' => '',
|
||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||||
],
|
||||
|
||||
'mysql' => [
|
||||
'driver' => 'mysql',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '3306'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
'username' => env('DB_USERNAME', 'forge'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_SOCKET', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
|
||||
'pgsql' => [
|
||||
'driver' => 'pgsql',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '5432'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
'username' => env('DB_USERNAME', 'forge'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'charset' => 'utf8',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'search_path' => 'public',
|
||||
'sslmode' => 'prefer',
|
||||
],
|
||||
|
||||
'sqlsrv' => [
|
||||
'driver' => 'sqlsrv',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'host' => env('DB_HOST', 'localhost'),
|
||||
'port' => env('DB_PORT', '1433'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
'username' => env('DB_USERNAME', 'forge'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'charset' => 'utf8',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
// 'encrypt' => env('DB_ENCRYPT', 'yes'),
|
||||
// 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migration Repository Table
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This table keeps track of all the migrations that have already run for
|
||||
| your application. Using this information, we can determine which of
|
||||
| the migrations on disk haven't actually been run in the database.
|
||||
|
|
||||
*/
|
||||
|
||||
'migrations' => 'migrations',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Redis Databases
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Redis is an open source, fast, and advanced key-value store that also
|
||||
| provides a richer body of commands than a typical key-value system
|
||||
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
||||
|
|
||||
*/
|
||||
|
||||
'redis' => [
|
||||
|
||||
'client' => env('REDIS_CLIENT', 'phpredis'),
|
||||
|
||||
'options' => [
|
||||
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
||||
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
|
||||
],
|
||||
|
||||
'default' => [
|
||||
'url' => env('REDIS_URL'),
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'username' => env('REDIS_USERNAME'),
|
||||
'password' => env('REDIS_PASSWORD'),
|
||||
'port' => env('REDIS_PORT', '6379'),
|
||||
'database' => env('REDIS_DB', '0'),
|
||||
],
|
||||
|
||||
'cache' => [
|
||||
'url' => env('REDIS_URL'),
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'username' => env('REDIS_USERNAME'),
|
||||
'password' => env('REDIS_PASSWORD'),
|
||||
'port' => env('REDIS_PORT', '6379'),
|
||||
'database' => env('REDIS_CACHE_DB', '1'),
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
];
|
||||
71
config/dompdf.php
Normal file
71
config/dompdf.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'show_warnings' => false, // Throw an Exception on warnings from dompdf
|
||||
|
||||
'public_path' => null, // Override the public path if needed
|
||||
|
||||
/*
|
||||
* Dejavu Sans font is missing glyphs for converted entities, turn it off if you need to show € and £.
|
||||
*/
|
||||
'convert_entities' => true,
|
||||
|
||||
'options' => [
|
||||
|
||||
'font_dir' => public_path('fonts'), // advised by dompdf (https://github.com/dompdf/dompdf/pull/782)
|
||||
|
||||
'font_cache' => public_path('fonts'),
|
||||
|
||||
'temp_dir' => sys_get_temp_dir(),
|
||||
|
||||
'chroot' => realpath(base_path()),
|
||||
|
||||
'allowed_protocols' => [
|
||||
'data://' => ['rules' => []],
|
||||
'file://' => ['rules' => []],
|
||||
'http://' => ['rules' => []],
|
||||
'https://' => ['rules' => []],
|
||||
],
|
||||
|
||||
/**
|
||||
* Operational artifact (log files, temporary files) path validation
|
||||
*/
|
||||
'artifactPathValidation' => null,
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
'log_output_file' => null,
|
||||
|
||||
/**
|
||||
* Whether to enable font subsetting or not.
|
||||
*/
|
||||
'enable_font_subsetting' => true,
|
||||
|
||||
'pdf_backend' => 'CPDF',
|
||||
|
||||
'default_media_type' => 'screen',
|
||||
|
||||
'default_paper_size' => 'a4',
|
||||
|
||||
'default_paper_orientation' => 'portrait',
|
||||
|
||||
'default_font' => 'NotoSans',
|
||||
|
||||
'dpi' => 96,
|
||||
|
||||
'enable_php' => false,
|
||||
|
||||
'enable_javascript' => true,
|
||||
|
||||
'enable_remote' => false,
|
||||
|
||||
'allowed_remote_hosts' => null,
|
||||
|
||||
'font_height_ratio' => 1.1,
|
||||
|
||||
'enable_html5_parser' => true,
|
||||
],
|
||||
|
||||
];
|
||||
76
config/filesystems.php
Normal file
76
config/filesystems.php
Normal file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Filesystem Disk
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify the default filesystem disk that should be used
|
||||
| by the framework. The "local" disk, as well as a variety of cloud
|
||||
| based disks are available to your application. Just store away!
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('FILESYSTEM_DISK', 'public'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Filesystem Disks
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure as many filesystem "disks" as you wish, and you
|
||||
| may even configure multiple disks of the same driver. Defaults have
|
||||
| been set up for each driver as an example of the required values.
|
||||
|
|
||||
| Supported Drivers: "local", "ftp", "sftp", "s3"
|
||||
|
|
||||
*/
|
||||
|
||||
'disks' => [
|
||||
|
||||
'local' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app'),
|
||||
'throw' => false,
|
||||
],
|
||||
|
||||
'public' => [
|
||||
'driver' => 'local',
|
||||
'root' => '.',
|
||||
'url' => env('APP_URL'),
|
||||
'visibility' => 'public',
|
||||
'throw' => false,
|
||||
],
|
||||
|
||||
's3' => [
|
||||
'driver' => 's3',
|
||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||
'region' => env('AWS_DEFAULT_REGION'),
|
||||
'bucket' => env('AWS_BUCKET'),
|
||||
'url' => env('AWS_URL'),
|
||||
'endpoint' => env('AWS_ENDPOINT'),
|
||||
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
|
||||
'throw' => false,
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Symbolic Links
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure the symbolic links that will be created when the
|
||||
| `storage:link` Artisan command is executed. The array keys should be
|
||||
| the locations of the links and the values should be their targets.
|
||||
|
|
||||
*/
|
||||
|
||||
'links' => [
|
||||
public_path('storage') => storage_path('app/public'),
|
||||
],
|
||||
|
||||
];
|
||||
52
config/hashing.php
Normal file
52
config/hashing.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Hash Driver
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default hash driver that will be used to hash
|
||||
| passwords for your application. By default, the bcrypt algorithm is
|
||||
| used; however, you remain free to modify this option if you wish.
|
||||
|
|
||||
| Supported: "bcrypt", "argon", "argon2id"
|
||||
|
|
||||
*/
|
||||
|
||||
'driver' => 'bcrypt',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Bcrypt Options
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify the configuration options that should be used when
|
||||
| passwords are hashed using the Bcrypt algorithm. This will allow you
|
||||
| to control the amount of time it takes to hash the given password.
|
||||
|
|
||||
*/
|
||||
|
||||
'bcrypt' => [
|
||||
'rounds' => env('BCRYPT_ROUNDS', 10),
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Argon Options
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify the configuration options that should be used when
|
||||
| passwords are hashed using the Argon algorithm. These will allow you
|
||||
| to control the amount of time it takes to hash the given password.
|
||||
|
|
||||
*/
|
||||
|
||||
'argon' => [
|
||||
'memory' => 65536,
|
||||
'threads' => 1,
|
||||
'time' => 4,
|
||||
],
|
||||
|
||||
];
|
||||
153
config/installer.php
Normal file
153
config/installer.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Server Requirements
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the default Laravel server requirements, you can add as many
|
||||
| as your application require, we check if the extension is enabled
|
||||
| by looping through the array and run "extension_loaded" on it.
|
||||
|
|
||||
*/
|
||||
|
||||
'core' => [
|
||||
'minPhpVersion' => '7.0.0',
|
||||
],
|
||||
'final' => [
|
||||
'key' => true,
|
||||
'publish' => false,
|
||||
],
|
||||
'requirements' => [
|
||||
'php' => [
|
||||
'openssl',
|
||||
'pdo',
|
||||
'mbstring',
|
||||
'tokenizer',
|
||||
'JSON',
|
||||
'cURL',
|
||||
],
|
||||
'apache' => [
|
||||
'mod_rewrite',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Folders Permissions
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the default Laravel folders permissions, if your application
|
||||
| requires more permissions just add them to the array list bellow.
|
||||
|
|
||||
*/
|
||||
|
||||
'permissions' => [
|
||||
'storage/framework/' => '775',
|
||||
'storage/logs/' => '775',
|
||||
'bootstrap/cache/' => '775',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Environment Form Wizard Validation Rules & Messages
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This are the default form field validation rules. Available Rules:
|
||||
| https://laravel.com/docs/5.4/validation#available-validation-rules
|
||||
|
|
||||
*/
|
||||
|
||||
'environment' => [
|
||||
'form' => [
|
||||
'rules' => [
|
||||
'app_name' => 'required|string|max:50',
|
||||
'environment' => 'required|string|max:50',
|
||||
'environment_custom' => 'required_if:environment,other|max:50',
|
||||
'app_debug' => 'required|string',
|
||||
'app_log_level' => 'required|string|max:50',
|
||||
'app_url' => 'required|url',
|
||||
'database_connection' => 'required|string|max:50',
|
||||
'database_hostname' => 'required|string|max:50',
|
||||
'database_port' => 'required|numeric',
|
||||
'database_name' => 'required|string|max:50',
|
||||
'database_username' => 'required|string|max:50',
|
||||
'database_password' => 'nullable|string|max:50',
|
||||
'broadcast_driver' => 'required|string|max:50',
|
||||
'cache_driver' => 'required|string|max:50',
|
||||
'session_driver' => 'required|string|max:50',
|
||||
'queue_driver' => 'required|string|max:50',
|
||||
'redis_hostname' => 'required|string|max:50',
|
||||
'redis_password' => 'required|string|max:50',
|
||||
'redis_port' => 'required|numeric',
|
||||
'mail_driver' => 'required|string|max:50',
|
||||
'mail_host' => 'required|string|max:50',
|
||||
'mail_port' => 'required|string|max:50',
|
||||
'mail_username' => 'required|string|max:50',
|
||||
'mail_password' => 'required|string|max:50',
|
||||
'mail_encryption' => 'required|string|max:50',
|
||||
'pusher_app_id' => 'max:50',
|
||||
'pusher_app_key' => 'max:50',
|
||||
'pusher_app_secret' => 'max:50',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Installed Middleware Options
|
||||
|--------------------------------------------------------------------------
|
||||
| Different available status switch configuration for the
|
||||
| canInstall middleware located in `canInstall.php`.
|
||||
|
|
||||
*/
|
||||
|
||||
'installed' => [
|
||||
'redirectOptions' => [
|
||||
'route' => [
|
||||
'name' => 'welcome',
|
||||
'data' => [],
|
||||
],
|
||||
'abort' => [
|
||||
'type' => '404',
|
||||
],
|
||||
'dump' => [
|
||||
'data' => 'Not Found.',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Selected Installed Middleware Option
|
||||
|--------------------------------------------------------------------------
|
||||
| The selected option fo what happens when an installer instance has been
|
||||
| Default output is to `/resources/views/error/404.blade.php` if none.
|
||||
| The available middleware options include:
|
||||
| route, abort, dump, 404, default, ''
|
||||
|
|
||||
*/
|
||||
|
||||
'installedAlreadyAction' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Updater Enabled
|
||||
|--------------------------------------------------------------------------
|
||||
| Can the application run the '/update' route with the migrations.
|
||||
| The default option is set to False if none is present.
|
||||
| Boolean value
|
||||
|
|
||||
*/
|
||||
|
||||
'checkPurchaseCode' => true,
|
||||
'demoPurchaseCodeAllow' => true,
|
||||
'demoPurchaseCode' => '',
|
||||
'updaterEnabled' => 'true',
|
||||
'headerkeys' => 'Bearer sLAEuLH83WuGmg8iJGDSxQiavZ2TF1ba',
|
||||
|
||||
'api_url' => 'https://api.kulakpos.id',
|
||||
'download_path' => '/../../../../..'
|
||||
];
|
||||
122
config/logging.php
Normal file
122
config/logging.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
use Monolog\Handler\NullHandler;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Handler\SyslogUdpHandler;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Log Channel
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option defines the default log channel that gets used when writing
|
||||
| messages to the logs. The name specified in this option should match
|
||||
| one of the channels defined in the "channels" configuration array.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('LOG_CHANNEL', 'stack'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Deprecations Log Channel
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the log channel that should be used to log warnings
|
||||
| regarding deprecated PHP and library features. This allows you to get
|
||||
| your application ready for upcoming major versions of dependencies.
|
||||
|
|
||||
*/
|
||||
|
||||
'deprecations' => [
|
||||
'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
|
||||
'trace' => false,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure the log channels for your application. Out of
|
||||
| the box, Laravel uses the Monolog PHP logging library. This gives
|
||||
| you a variety of powerful log handlers / formatters to utilize.
|
||||
|
|
||||
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||
| "errorlog", "monolog",
|
||||
| "custom", "stack"
|
||||
|
|
||||
*/
|
||||
|
||||
'channels' => [
|
||||
'stack' => [
|
||||
'driver' => 'stack',
|
||||
'channels' => ['single'],
|
||||
'ignore_exceptions' => false,
|
||||
],
|
||||
|
||||
'single' => [
|
||||
'driver' => 'single',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'daily' => [
|
||||
'driver' => 'daily',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'days' => 14,
|
||||
],
|
||||
|
||||
'slack' => [
|
||||
'driver' => 'slack',
|
||||
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||
'username' => 'Laravel Log',
|
||||
'emoji' => ':boom:',
|
||||
'level' => env('LOG_LEVEL', 'critical'),
|
||||
],
|
||||
|
||||
'papertrail' => [
|
||||
'driver' => 'monolog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
|
||||
'handler_with' => [
|
||||
'host' => env('PAPERTRAIL_URL'),
|
||||
'port' => env('PAPERTRAIL_PORT'),
|
||||
'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
|
||||
],
|
||||
],
|
||||
|
||||
'stderr' => [
|
||||
'driver' => 'monolog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'handler' => StreamHandler::class,
|
||||
'formatter' => env('LOG_STDERR_FORMATTER'),
|
||||
'with' => [
|
||||
'stream' => 'php://stderr',
|
||||
],
|
||||
],
|
||||
|
||||
'syslog' => [
|
||||
'driver' => 'syslog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'errorlog' => [
|
||||
'driver' => 'errorlog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'null' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => NullHandler::class,
|
||||
],
|
||||
|
||||
'emergency' => [
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
118
config/mail.php
Normal file
118
config/mail.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Mailer
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default mailer that is used to send any email
|
||||
| messages sent by your application. Alternative mailers may be setup
|
||||
| and used as needed; however, this mailer will be used by default.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('MAIL_MAILER', 'smtp'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Mailer Configurations
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure all of the mailers used by your application plus
|
||||
| their respective settings. Several examples have been configured for
|
||||
| you and you are free to add your own as your application requires.
|
||||
|
|
||||
| Laravel supports a variety of mail "transport" drivers to be used while
|
||||
| sending an e-mail. You will specify which one you are using for your
|
||||
| mailers below. You are free to add additional mailers as required.
|
||||
|
|
||||
| Supported: "smtp", "sendmail", "mailgun", "ses",
|
||||
| "postmark", "log", "array", "failover"
|
||||
|
|
||||
*/
|
||||
|
||||
'mailers' => [
|
||||
'smtp' => [
|
||||
'transport' => 'smtp',
|
||||
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
|
||||
'port' => env('MAIL_PORT', 587),
|
||||
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
|
||||
'username' => env('MAIL_USERNAME'),
|
||||
'password' => env('MAIL_PASSWORD'),
|
||||
'timeout' => null,
|
||||
'local_domain' => env('MAIL_EHLO_DOMAIN'),
|
||||
],
|
||||
|
||||
'ses' => [
|
||||
'transport' => 'ses',
|
||||
],
|
||||
|
||||
'mailgun' => [
|
||||
'transport' => 'mailgun',
|
||||
],
|
||||
|
||||
'postmark' => [
|
||||
'transport' => 'postmark',
|
||||
],
|
||||
|
||||
'sendmail' => [
|
||||
'transport' => 'sendmail',
|
||||
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
|
||||
],
|
||||
|
||||
'log' => [
|
||||
'transport' => 'log',
|
||||
'channel' => env('MAIL_LOG_CHANNEL'),
|
||||
],
|
||||
|
||||
'array' => [
|
||||
'transport' => 'array',
|
||||
],
|
||||
|
||||
'failover' => [
|
||||
'transport' => 'failover',
|
||||
'mailers' => [
|
||||
'smtp',
|
||||
'log',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global "From" Address
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| You may wish for all e-mails sent by your application to be sent from
|
||||
| the same address. Here, you may specify a name and address that is
|
||||
| used globally for all e-mails that are sent by your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'from' => [
|
||||
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
|
||||
'name' => env('MAIL_FROM_NAME', 'Example'),
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Markdown Mail Settings
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If you are using Markdown based email rendering, you may configure your
|
||||
| theme and component paths here, allowing you to customize the design
|
||||
| of the emails. Or, you may simply stick with the Laravel defaults!
|
||||
|
|
||||
*/
|
||||
|
||||
'markdown' => [
|
||||
'theme' => 'default',
|
||||
|
||||
'paths' => [
|
||||
resource_path('views/vendor/mail'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
186
config/permission.php
Normal file
186
config/permission.php
Normal file
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'models' => [
|
||||
|
||||
/*
|
||||
* When using the "HasPermissions" trait from this package, we need to know which
|
||||
* Eloquent model should be used to retrieve your permissions. Of course, it
|
||||
* is often just the "Permission" model but you may use whatever you like.
|
||||
*
|
||||
* The model you want to use as a Permission model needs to implement the
|
||||
* `Spatie\Permission\Contracts\Permission` contract.
|
||||
*/
|
||||
|
||||
'permission' => Spatie\Permission\Models\Permission::class,
|
||||
|
||||
/*
|
||||
* When using the "HasRoles" trait from this package, we need to know which
|
||||
* Eloquent model should be used to retrieve your roles. Of course, it
|
||||
* is often just the "Role" model but you may use whatever you like.
|
||||
*
|
||||
* The model you want to use as a Role model needs to implement the
|
||||
* `Spatie\Permission\Contracts\Role` contract.
|
||||
*/
|
||||
|
||||
'role' => Spatie\Permission\Models\Role::class,
|
||||
|
||||
],
|
||||
|
||||
'table_names' => [
|
||||
|
||||
/*
|
||||
* When using the "HasRoles" trait from this package, we need to know which
|
||||
* table should be used to retrieve your roles. We have chosen a basic
|
||||
* default value but you may easily change it to any table you like.
|
||||
*/
|
||||
|
||||
'roles' => 'roles',
|
||||
|
||||
/*
|
||||
* When using the "HasPermissions" trait from this package, we need to know which
|
||||
* table should be used to retrieve your permissions. We have chosen a basic
|
||||
* default value but you may easily change it to any table you like.
|
||||
*/
|
||||
|
||||
'permissions' => 'permissions',
|
||||
|
||||
/*
|
||||
* When using the "HasPermissions" trait from this package, we need to know which
|
||||
* table should be used to retrieve your models permissions. We have chosen a
|
||||
* basic default value but you may easily change it to any table you like.
|
||||
*/
|
||||
|
||||
'model_has_permissions' => 'model_has_permissions',
|
||||
|
||||
/*
|
||||
* When using the "HasRoles" trait from this package, we need to know which
|
||||
* table should be used to retrieve your models roles. We have chosen a
|
||||
* basic default value but you may easily change it to any table you like.
|
||||
*/
|
||||
|
||||
'model_has_roles' => 'model_has_roles',
|
||||
|
||||
/*
|
||||
* When using the "HasRoles" trait from this package, we need to know which
|
||||
* table should be used to retrieve your roles permissions. We have chosen a
|
||||
* basic default value but you may easily change it to any table you like.
|
||||
*/
|
||||
|
||||
'role_has_permissions' => 'role_has_permissions',
|
||||
],
|
||||
|
||||
'column_names' => [
|
||||
/*
|
||||
* Change this if you want to name the related pivots other than defaults
|
||||
*/
|
||||
'role_pivot_key' => null, //default 'role_id',
|
||||
'permission_pivot_key' => null, //default 'permission_id',
|
||||
|
||||
/*
|
||||
* Change this if you want to name the related model primary key other than
|
||||
* `model_id`.
|
||||
*
|
||||
* For example, this would be nice if your primary keys are all UUIDs. In
|
||||
* that case, name this `model_uuid`.
|
||||
*/
|
||||
|
||||
'model_morph_key' => 'model_id',
|
||||
|
||||
/*
|
||||
* Change this if you want to use the teams feature and your related model's
|
||||
* foreign key is other than `team_id`.
|
||||
*/
|
||||
|
||||
'team_foreign_key' => 'team_id',
|
||||
],
|
||||
|
||||
/*
|
||||
* When set to true, the method for checking permissions will be registered on the gate.
|
||||
* Set this to false if you want to implement custom logic for checking permissions.
|
||||
*/
|
||||
|
||||
'register_permission_check_method' => true,
|
||||
|
||||
/*
|
||||
* When set to true, Laravel\Octane\Events\OperationTerminated event listener will be registered
|
||||
* this will refresh permissions on every TickTerminated, TaskTerminated and RequestTerminated
|
||||
* NOTE: This should not be needed in most cases, but an Octane/Vapor combination benefited from it.
|
||||
*/
|
||||
'register_octane_reset_listener' => false,
|
||||
|
||||
/*
|
||||
* Teams Feature.
|
||||
* When set to true the package implements teams using the 'team_foreign_key'.
|
||||
* If you want the migrations to register the 'team_foreign_key', you must
|
||||
* set this to true before doing the migration.
|
||||
* If you already did the migration then you must make a new migration to also
|
||||
* add 'team_foreign_key' to 'roles', 'model_has_roles', and 'model_has_permissions'
|
||||
* (view the latest version of this package's migration file)
|
||||
*/
|
||||
|
||||
'teams' => false,
|
||||
|
||||
/*
|
||||
* Passport Client Credentials Grant
|
||||
* When set to true the package will use Passports Client to check permissions
|
||||
*/
|
||||
|
||||
'use_passport_client_credentials' => false,
|
||||
|
||||
/*
|
||||
* When set to true, the required permission names are added to exception messages.
|
||||
* This could be considered an information leak in some contexts, so the default
|
||||
* setting is false here for optimum safety.
|
||||
*/
|
||||
|
||||
'display_permission_in_exception' => false,
|
||||
|
||||
/*
|
||||
* When set to true, the required role names are added to exception messages.
|
||||
* This could be considered an information leak in some contexts, so the default
|
||||
* setting is false here for optimum safety.
|
||||
*/
|
||||
|
||||
'display_role_in_exception' => false,
|
||||
|
||||
/*
|
||||
* By default wildcard permission lookups are disabled.
|
||||
* See documentation to understand supported syntax.
|
||||
*/
|
||||
|
||||
'enable_wildcard_permission' => false,
|
||||
|
||||
/*
|
||||
* The class to use for interpreting wildcard permissions.
|
||||
* If you need to modify delimiters, override the class and specify its name here.
|
||||
*/
|
||||
// 'permission.wildcard_permission' => Spatie\Permission\WildcardPermission::class,
|
||||
|
||||
/* Cache-specific settings */
|
||||
|
||||
'cache' => [
|
||||
|
||||
/*
|
||||
* By default all permissions are cached for 24 hours to speed up performance.
|
||||
* When permissions or roles are updated the cache is flushed automatically.
|
||||
*/
|
||||
|
||||
'expiration_time' => \DateInterval::createFromDateString('24 hours'),
|
||||
|
||||
/*
|
||||
* The cache key used to store all permissions.
|
||||
*/
|
||||
|
||||
'key' => 'spatie.permission.cache',
|
||||
|
||||
/*
|
||||
* You may optionally indicate a specific cache driver to use for permission and
|
||||
* role caching using any of the `store` drivers listed in the cache.php config
|
||||
* file. Using 'default' here means to use the `default` set in cache.php.
|
||||
*/
|
||||
|
||||
'store' => 'default',
|
||||
],
|
||||
];
|
||||
11
config/phonepe.php
Normal file
11
config/phonepe.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'merchantId' => env('PHONEPE_MERCHANT_ID'),
|
||||
'merchantUserId' => env('PHONEPE_MERCHANT_USER_ID'),
|
||||
'env' => env('PHONEPE_ENV'),
|
||||
'saltKey' => env('PHONEPE_SALT_KEY'),
|
||||
'saltIndex' => env('PHONEPE_SALT_INDEX'),
|
||||
'redirectUrl' => env('PHONEPE_REDIRECT_URL'),
|
||||
'callBackUrl' => env('PHONEPE_CALLBACK_URL')
|
||||
);
|
||||
93
config/queue.php
Normal file
93
config/queue.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Queue Connection Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Laravel's queue API supports an assortment of back-ends via a single
|
||||
| API, giving you convenient access to each back-end using the same
|
||||
| syntax for every one. Here you may define a default connection.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('QUEUE_CONNECTION', 'sync'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Queue Connections
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure the connection information for each server that
|
||||
| is used by your application. A default configuration has been added
|
||||
| for each back-end shipped with Laravel. You are free to add more.
|
||||
|
|
||||
| Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
|
||||
|
|
||||
*/
|
||||
|
||||
'connections' => [
|
||||
|
||||
'sync' => [
|
||||
'driver' => 'sync',
|
||||
],
|
||||
|
||||
'database' => [
|
||||
'driver' => 'database',
|
||||
'table' => 'jobs',
|
||||
'queue' => 'default',
|
||||
'retry_after' => 90,
|
||||
'after_commit' => false,
|
||||
],
|
||||
|
||||
'beanstalkd' => [
|
||||
'driver' => 'beanstalkd',
|
||||
'host' => 'localhost',
|
||||
'queue' => 'default',
|
||||
'retry_after' => 90,
|
||||
'block_for' => 0,
|
||||
'after_commit' => false,
|
||||
],
|
||||
|
||||
'sqs' => [
|
||||
'driver' => 'sqs',
|
||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
|
||||
'queue' => env('SQS_QUEUE', 'default'),
|
||||
'suffix' => env('SQS_SUFFIX'),
|
||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
||||
'after_commit' => false,
|
||||
],
|
||||
|
||||
'redis' => [
|
||||
'driver' => 'redis',
|
||||
'connection' => 'default',
|
||||
'queue' => env('REDIS_QUEUE', 'default'),
|
||||
'retry_after' => 90,
|
||||
'block_for' => null,
|
||||
'after_commit' => false,
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Failed Queue Jobs
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These options configure the behavior of failed queue job logging so you
|
||||
| can control which database and table are used to store the jobs that
|
||||
| have failed. You may change them to any database / table you wish.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => [
|
||||
'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
|
||||
'database' => env('DB_CONNECTION', 'mysql'),
|
||||
'table' => 'failed_jobs',
|
||||
],
|
||||
|
||||
];
|
||||
695
config/report_fields.php
Normal file
695
config/report_fields.php
Normal file
@@ -0,0 +1,695 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
// =========================
|
||||
// Sales Report
|
||||
// =========================
|
||||
'sales' => [
|
||||
'invoiceNumber' => ['label' => 'Invoice Number', 'type' => 'string'],
|
||||
'saleDate' => ['label' => 'Sale Date', 'type' => 'date'],
|
||||
'totalAmount' => ['label' => 'Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Discount Amount', 'type' => 'amount'],
|
||||
'discount_percent' => ['label' => 'Discount Percent', 'type' => 'percentage'],
|
||||
'discount_type' => ['label' => 'Discount Type', 'type' => 'string'],
|
||||
'shipping_charge' => ['label' => 'Shipping Charge', 'type' => 'amount'],
|
||||
'isPaid' => ['label' => 'Payment Status', 'type' => 'boolean'],
|
||||
'vat_amount' => ['label' => 'VAT Amount', 'type' => 'amount'],
|
||||
'vat_percent' => ['label' => 'VAT Percent', 'type' => 'percentage'],
|
||||
'lossProfit' => ['label' => 'Loss/Profit', 'type' => 'amount'],
|
||||
'change_amount' => ['label' => 'Change Amount', 'type' => 'amount'],
|
||||
'created_at' => ['label' => 'Created At', 'type' => 'date'],
|
||||
'updated_at' => ['label' => 'Updated At', 'type' => 'date'],
|
||||
|
||||
'details' => [
|
||||
'price' => ['label' => 'Product Price', 'type' => 'amount'],
|
||||
'lossProfit' => ['label' => 'Loss Profit', 'type' => 'amount'],
|
||||
'quantities' => ['label' => 'Quantity', 'type' => 'number'],
|
||||
'expire_date' => ['label' => 'Expire Date', 'type' => 'date'],
|
||||
'mfg_date' => ['label' => 'Manufacture Date', 'type' => 'date'],
|
||||
'productPurchasePrice' => ['label' => 'Product Purchase Price', 'type' => 'amount'],
|
||||
],
|
||||
|
||||
'party' => [
|
||||
'name' => ['label' => 'Customer Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Customer Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Customer Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Customer Due Amount', 'type' => 'amount'],
|
||||
'address' => ['label' => 'Customer Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Customer Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Customer Wallet Balance', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Customer Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Customer Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Customer Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Customer Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'vat' => [
|
||||
'name' => ['label' => 'Vat Name', 'type' => 'string'],
|
||||
'rate' => ['label' => 'Vat Rate', 'type' => 'percentage'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Sales Return
|
||||
// =========================
|
||||
'sale_returns' => [
|
||||
'invoice_no' => ['label' => 'Invoice Number', 'type' => 'string'],
|
||||
'return_date' => ['label' => 'Return Date', 'type' => 'date'],
|
||||
|
||||
'sale' => [
|
||||
'totalAmount' => ['label' => 'Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Discount Amount', 'type' => 'amount'],
|
||||
'saleDate' => ['label' => 'Sale Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'details' => [
|
||||
'return_amount' => ['label' => 'Return Amount', 'type' => 'amount'],
|
||||
'return_qty' => ['label' => 'Return Qty', 'type' => 'number'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Purchases Report
|
||||
// =========================
|
||||
'purchases' => [
|
||||
'invoiceNumber' => ['label' => 'Invoice Number', 'type' => 'string'],
|
||||
'totalAmount' => ['label' => 'Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Discount Amount', 'type' => 'amount'],
|
||||
'discount_percent' => ['label' => 'Discount', 'type' => 'percentage'],
|
||||
'discount_type' => ['label' => 'Discount Type', 'type' => 'string'],
|
||||
'shipping_charge' => ['label' => 'Shiping Charge', 'type' => 'amount'],
|
||||
'vat_amount' => ['label' => 'VAT Amount', 'type' => 'amount'],
|
||||
'vat_percent' => ['label' => 'VAT Percent', 'type' => 'percentage'],
|
||||
'isPaid' => ['label' => 'Payment Status', 'type' => 'boolean'],
|
||||
'change_amount' => ['label' => 'Change Amount', 'type' => 'amount'],
|
||||
'purchaseDate' => ['label' => 'Purchase Date', 'type' => 'date'],
|
||||
'created_at' => ['label' => 'Created At', 'type' => 'date'],
|
||||
'updated_at' => ['label' => 'Updated At', 'type' => 'date'],
|
||||
|
||||
'details' => [
|
||||
'productDealerPrice' => ['label' => 'Dealer Price', 'type' => 'amount'],
|
||||
'productPurchasePrice' => ['label' => 'Purchase Price', 'type' => 'amount'],
|
||||
'profit_percent' => ['label' => 'Profit', 'type' => 'percentage'],
|
||||
'productSalePrice' => ['label' => 'Sale Price', 'type' => 'amount'],
|
||||
'productWholeSalePrice' => ['label' => 'Wholesale Price', 'type' => 'amount'],
|
||||
'quantities' => ['label' => 'Quantity', 'type' => 'number'],
|
||||
'mfg_date' => ['label' => 'Manufacture Date', 'type' => 'date'],
|
||||
'expire_date' => ['label' => 'Expire Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'party' => [
|
||||
'name' => ['label' => 'Supplier Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Supplier Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Supplier Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Supplier Due Amount', 'type' => 'amount'],
|
||||
'address' => ['label' => 'Supplier Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Supplier Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Supplier Wallet Balance', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Supplier Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Supplier Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Supplier Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Supplier Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'vat' => [
|
||||
'name' => ['label' => 'Vat Name', 'type' => 'string'],
|
||||
'rate' => ['label' => 'Vat Rate', 'type' => 'percentage'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Purchase Return
|
||||
// =========================
|
||||
'purchase_returns' => [
|
||||
'invoice_no' => ['label' => 'Invoice Number', 'type' => 'string'],
|
||||
'return_date' => ['label' => 'Return Date', 'type' => 'date'],
|
||||
|
||||
'purchase' => [
|
||||
'totalAmount' => ['label' => 'Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Discount Amount', 'type' => 'amount'],
|
||||
'purchaseDate' => ['label' => 'Purchase Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'details' => [
|
||||
'return_amount' => ['label' => 'Return Amount', 'type' => 'amount'],
|
||||
'return_qty' => ['label' => 'Return Qty', 'type' => 'number'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Products Report
|
||||
// =========================
|
||||
'products' => [
|
||||
'productName' => ['label' => 'Product Name', 'type' => 'string'],
|
||||
'productPicture' => ['label' => 'Product Image', 'type' => 'string'],
|
||||
'productCode' => ['label' => 'Product Code', 'type' => 'string'],
|
||||
'product_type' => ['label' => 'Product Type', 'type' => 'string'],
|
||||
'alert_qty' => ['label' => 'Alert Qty', 'type' => 'number'],
|
||||
'productManufacturer' => ['label' => 'Manufacturer', 'type' => 'string'],
|
||||
|
||||
'stocks' => [
|
||||
'productPurchasePrice' => ['label' => 'Purchase Price', 'type' => 'amount'],
|
||||
'productSalePrice' => ['label' => 'Sale Price', 'type' => 'amount'],
|
||||
'productWholeSalePrice' => ['label' => 'Wholesale Price', 'type' => 'amount'],
|
||||
'productDealerPrice' => ['label' => 'Dealer Price', 'type' => 'amount'],
|
||||
'batch_no' => ['label' => 'Batch No', 'type' => 'string'],
|
||||
'mfg_date' => ['label' => 'Manufacture Date', 'type' => 'date'],
|
||||
'expire_date' => ['label' => 'Stock Expire Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'unit' => [
|
||||
'unitName' => ['label' => 'Unit Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'brand' => [
|
||||
'brandName' => ['label' => 'Brand Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'vat' => [
|
||||
'name' => ['label' => 'Vat Name', 'type' => 'string'],
|
||||
'rate' => ['label' => 'Vat Rate', 'type' => 'percentage'],
|
||||
],
|
||||
|
||||
'category' => [
|
||||
'categoryName' => ['label' => 'Category Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'warehouse' => [
|
||||
'name' => ['label' => 'Warehouse Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Warehouse Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'Warehouse Email', 'type' => 'string'],
|
||||
'address' => ['label' => 'Warehouse Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'rack' => [
|
||||
'name' => ['label' => 'Rack Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'shelf' => [
|
||||
'name' => ['label' => 'Shelf Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'product_model' => [
|
||||
'name' => ['label' => 'Model Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
// Virtual field
|
||||
'total_stock' => ['label' => 'Total Stock (All Batches)', 'type' => 'number'],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Customers
|
||||
// =========================
|
||||
'customers' => [
|
||||
'name' => ['label' => 'Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Due', 'type' => 'amount'],
|
||||
'image' => ['label' => 'Image', 'type' => 'string'],
|
||||
'status' => ['label' => 'Status', 'type' => 'string'],
|
||||
'address' => ['label' => 'Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Wallet', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Suppliers
|
||||
// =========================
|
||||
'suppliers' => [
|
||||
'name' => ['label' => 'Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Due', 'type' => 'amount'],
|
||||
'image' => ['label' => 'Image', 'type' => 'string'],
|
||||
'status' => ['label' => 'Status', 'type' => 'string'],
|
||||
'address' => ['label' => 'Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Wallet', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Incomes
|
||||
// =========================
|
||||
'incomes' => [
|
||||
'amount' => ['label' => 'Amount', 'type' => 'amount'],
|
||||
'incomeFor' => ['label' => 'Income For', 'type' => 'string'],
|
||||
'referenceNo' => ['label' => 'Reference No', 'type' => 'string'],
|
||||
'note' => ['label' => 'Note', 'type' => 'string'],
|
||||
'incomeDate' => ['label' => 'Income Date', 'type' => 'date'],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'category' => [
|
||||
'categoryName' => ['label' => 'Income Category', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type Name', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Expenses
|
||||
// =========================
|
||||
'expenses' => [
|
||||
'amount' => ['label' => 'Amount', 'type' => 'amount'],
|
||||
'expanseFor' => ['label' => 'Expense For', 'type' => 'string'],
|
||||
'referenceNo' => ['label' => 'Reference No', 'type' => 'string'],
|
||||
'note' => ['label' => 'Note', 'type' => 'string'],
|
||||
'expenseDate' => ['label' => 'Expense Date', 'type' => 'date'],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'category' => [
|
||||
'categoryName' => ['label' => 'Expense Category', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type Name', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Taxes
|
||||
// =========================
|
||||
'taxes' => [
|
||||
'name' => ['label' => 'Name', 'type' => 'string'],
|
||||
'rate' => ['label' => 'Rate', 'type' => 'percentage'],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Warehouses
|
||||
// =========================
|
||||
'warehouses' => [
|
||||
'name' => ['label' => 'Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'Email', 'type' => 'string'],
|
||||
'address' => ['label' => 'Address', 'type' => 'string'],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Stocks
|
||||
// =========================
|
||||
'stocks' => [
|
||||
'batch_no' => ['label' => 'Batch No', 'type' => 'string'],
|
||||
'productStock' => ['label' => 'Stock', 'type' => 'number'],
|
||||
'productPurchasePrice' => ['label' => 'Purchase Price', 'type' => 'amount'],
|
||||
'profit_percent' => ['label' => 'Profit', 'type' => 'percentage'],
|
||||
'productSalePrice' => ['label' => 'Sale Pice', 'type' => 'amount'],
|
||||
'productWholeSalePrice' => ['label' => 'Wholesale Price', 'type' => 'amount'],
|
||||
'productDealerPrice' => ['label' => 'Dealer Price', 'type' => 'amount'],
|
||||
'mfg_date' => ['label' => 'Manufacture Date', 'type' => 'date'],
|
||||
'expire_date' => ['label' => 'Expire Date', 'type' => 'date'],
|
||||
|
||||
'product' => [
|
||||
'productName' => ['label' => 'Product Name', 'type' => 'string'],
|
||||
'productPicture' => ['label' => 'Product Image', 'type' => 'string'],
|
||||
'productCode' => ['label' => 'Product Code', 'type' => 'string'],
|
||||
'product_type' => ['label' => 'Product Type', 'type' => 'string'],
|
||||
'alert_qty' => ['label' => 'Alert Qty', 'type' => 'number'],
|
||||
'productManufacturer' => ['label' => 'Manufacturer', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'warehouse' => [
|
||||
'name' => ['label' => 'Warehouse Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Warehouse Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'Warehouse Email', 'type' => 'string'],
|
||||
'address' => ['label' => 'Warehouse Address', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Transactions
|
||||
// =========================
|
||||
'transactions' => [
|
||||
'invoiceNumber' => ['label' => 'Invoice No', 'type' => 'string'],
|
||||
'totalDue' => ['label' => 'Total Due', 'type' => 'amount'],
|
||||
'dueAmountAfterPay' => ['label' => 'Due After Pay', 'type' => 'amount'],
|
||||
'payDueAmount' => ['label' => 'Pay Due', 'type' => 'amount'],
|
||||
'paymentDate' => ['label' => 'Payment Date', 'type' => 'date'],
|
||||
|
||||
'party' => [
|
||||
'name' => ['label' => 'Party Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Party Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Party Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Party Due Amount', 'type' => 'amount'],
|
||||
'address' => ['label' => 'Party Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Party Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Party Wallet Balance', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Party Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Party Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Party Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Party Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'sale' => [
|
||||
'totalAmount' => ['label' => 'Sale Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Sale Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Sale Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Sale Discount Amount', 'type' => 'amount'],
|
||||
'saleDate' => ['label' => 'Sale Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'purchase' => [
|
||||
'totalAmount' => ['label' => 'Purchase Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Purchase Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Purchase Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Purchase Discount Amount', 'type' => 'amount'],
|
||||
'purchaseDate' => ['label' => 'Purchase Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Sale Payments
|
||||
// =========================
|
||||
'sale_payments' => [
|
||||
'invoiceNumber' => ['label' => 'Invoice No', 'type' => 'string'],
|
||||
'totalDue' => ['label' => 'Total Due', 'type' => 'amount'],
|
||||
'dueAmountAfterPay' => ['label' => 'Due After Pay', 'type' => 'amount'],
|
||||
'payDueAmount' => ['label' => 'Pay Due', 'type' => 'amount'],
|
||||
'paymentDate' => ['label' => 'Payment Date', 'type' => 'date'],
|
||||
|
||||
'party' => [
|
||||
'name' => ['label' => 'Customer Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Customer Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Customer Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Customer Due Amount', 'type' => 'amount'],
|
||||
'address' => ['label' => 'Customer Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Customer Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Customer Wallet Balance', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Customer Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Customer Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Customer Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Customer Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'sale' => [
|
||||
'totalAmount' => ['label' => 'Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Discount Amount', 'type' => 'amount'],
|
||||
'saleDate' => ['label' => 'Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Purchase Payments
|
||||
// =========================
|
||||
'purchase_payments' => [
|
||||
'invoiceNumber' => ['label' => 'Invoice No', 'type' => 'string'],
|
||||
'totalDue' => ['label' => 'Total Due', 'type' => 'amount'],
|
||||
'dueAmountAfterPay' => ['label' => 'Due After Pay', 'type' => 'amount'],
|
||||
'payDueAmount' => ['label' => 'Pay Due', 'type' => 'amount'],
|
||||
'paymentDate' => ['label' => 'Payment Date', 'type' => 'date'],
|
||||
|
||||
'party' => [
|
||||
'name' => ['label' => 'Supplier Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Supplier Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Supplier Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Supplier Due Amount', 'type' => 'amount'],
|
||||
'address' => ['label' => 'Supplier Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Supplier Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Supplier Wallet Balance', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Supplier Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Supplier Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Supplier Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Supplier Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'purchase' => [
|
||||
'totalAmount' => ['label' => 'Purchase Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Purchase Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Purchase Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Purchase Discount Amount', 'type' => 'amount'],
|
||||
'purchaseDate' => ['label' => 'Purchase Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Low Stocks Report
|
||||
// =========================
|
||||
'low_stocks' => [
|
||||
'productName' => ['label' => 'Product Name', 'type' => 'string'],
|
||||
'productPicture' => ['label' => 'Product Image', 'type' => 'string'],
|
||||
'productCode' => ['label' => 'Product Code', 'type' => 'string'],
|
||||
'product_type' => ['label' => 'Product Type', 'type' => 'string'],
|
||||
'alert_qty' => ['label' => 'Alert Qty', 'type' => 'number'],
|
||||
'productManufacturer' => ['label' => 'Manufacturer', 'type' => 'string'],
|
||||
|
||||
'stocks' => [
|
||||
'productPurchasePrice' => ['label' => 'Purchase Price', 'type' => 'amount'],
|
||||
'productSalePrice' => ['label' => 'Sale Price', 'type' => 'amount'],
|
||||
'productWholeSalePrice' => ['label' => 'Wholesale Price', 'type' => 'amount'],
|
||||
'productDealerPrice' => ['label' => 'Dealer Price', 'type' => 'amount'],
|
||||
'batch_no' => ['label' => 'Batch No', 'type' => 'string'],
|
||||
'mfg_date' => ['label' => 'Manufacture Date', 'type' => 'date'],
|
||||
'expire_date' => ['label' => 'Stock Expire Date', 'type' => 'date'],
|
||||
],
|
||||
|
||||
'unit' => [
|
||||
'unitName' => ['label' => 'Unit Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'brand' => [
|
||||
'brandName' => ['label' => 'Brand Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'vat' => [
|
||||
'name' => ['label' => 'Vat Name', 'type' => 'string'],
|
||||
'rate' => ['label' => 'Vat Rate', 'type' => 'percentage'],
|
||||
],
|
||||
|
||||
'category' => [
|
||||
'categoryName' => ['label' => 'Category Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'warehouse' => [
|
||||
'name' => ['label' => 'Warehouse Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Warehouse Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'Warehouse Email', 'type' => 'string'],
|
||||
'address' => ['label' => 'Warehouse Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'rack' => [
|
||||
'name' => ['label' => 'Rack Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'shelf' => [
|
||||
'name' => ['label' => 'Shelf Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'product_model' => [
|
||||
'name' => ['label' => 'Model Name', 'type' => 'string'],
|
||||
],
|
||||
|
||||
// Virtual field
|
||||
'total_stock' => ['label' => 'Total Stock (All Batches)', 'type' => 'number'],
|
||||
],
|
||||
|
||||
// =========================
|
||||
// Loss Profit Report
|
||||
// =========================
|
||||
'loss_profit' => [
|
||||
'invoiceNumber' => ['label' => 'Invoice Number', 'type' => 'string'],
|
||||
'saleDate' => ['label' => 'Sale Date', 'type' => 'date'],
|
||||
'totalAmount' => ['label' => 'Total Amount', 'type' => 'amount'],
|
||||
'paidAmount' => ['label' => 'Paid Amount', 'type' => 'amount'],
|
||||
'dueAmount' => ['label' => 'Due Amount', 'type' => 'amount'],
|
||||
'discountAmount' => ['label' => 'Discount Amount', 'type' => 'amount'],
|
||||
'discount_percent' => ['label' => 'Discount Percent', 'type' => 'percentage'],
|
||||
'discount_type' => ['label' => 'Discount Type', 'type' => 'string'],
|
||||
'shipping_charge' => ['label' => 'Shipping Charge', 'type' => 'amount'],
|
||||
'isPaid' => ['label' => 'Payment Status', 'type' => 'boolean'],
|
||||
'vat_amount' => ['label' => 'VAT Amount', 'type' => 'amount'],
|
||||
'vat_percent' => ['label' => 'VAT Percent', 'type' => 'percentage'],
|
||||
'lossProfit' => ['label' => 'Loss/Profit', 'type' => 'amount'],
|
||||
'change_amount' => ['label' => 'Change Amount', 'type' => 'amount'],
|
||||
'created_at' => ['label' => 'Created At', 'type' => 'date'],
|
||||
'updated_at' => ['label' => 'Updated At', 'type' => 'date'],
|
||||
|
||||
'details' => [
|
||||
'price' => ['label' => 'Product Price', 'type' => 'amount'],
|
||||
'lossProfit' => ['label' => 'Loss Profit', 'type' => 'amount'],
|
||||
'quantities' => ['label' => 'Quantity', 'type' => 'number'],
|
||||
'expire_date' => ['label' => 'Expire Date', 'type' => 'date'],
|
||||
'mfg_date' => ['label' => 'Manufacture Date', 'type' => 'date'],
|
||||
'productPurchasePrice' => ['label' => 'Product Purchase Price', 'type' => 'amount'],
|
||||
],
|
||||
|
||||
'party' => [
|
||||
'name' => ['label' => 'Customer Name', 'type' => 'string'],
|
||||
'email' => ['label' => 'Customer Email', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Customer Phone', 'type' => 'string'],
|
||||
'due' => ['label' => 'Customer Due Amount', 'type' => 'amount'],
|
||||
'address' => ['label' => 'Customer Address', 'type' => 'string'],
|
||||
'credit_limit' => ['label' => 'Customer Credit Limit', 'type' => 'amount'],
|
||||
'wallet' => ['label' => 'Customer Wallet Balance', 'type' => 'amount'],
|
||||
'opening_balance' => ['label' => 'Customer Opening Balance', 'type' => 'amount'],
|
||||
'opening_balance_type' => ['label' => 'Customer Opening Balance Type', 'type' => 'string'],
|
||||
'billing_address' => ['label' => 'Customer Billing Address', 'type' => 'string'],
|
||||
'shipping_address' => ['label' => 'Customer Shipping Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'branch' => [
|
||||
'name' => ['label' => 'Branch Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'Branch Phone', 'type' => 'string'],
|
||||
'address' => ['label' => 'Branch Address', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'user' => [
|
||||
'name' => ['label' => 'User Name', 'type' => 'string'],
|
||||
'phone' => ['label' => 'User Phone', 'type' => 'string'],
|
||||
'email' => ['label' => 'User Email', 'type' => 'string'],
|
||||
],
|
||||
|
||||
'vat' => [
|
||||
'name' => ['label' => 'Vat Name', 'type' => 'string'],
|
||||
'rate' => ['label' => 'Vat Rate', 'type' => 'percentage'],
|
||||
],
|
||||
|
||||
'payment_type' => [
|
||||
'name' => ['label' => 'Payment Type', 'type' => 'string'],
|
||||
],
|
||||
],
|
||||
];
|
||||
67
config/sanctum.php
Normal file
67
config/sanctum.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Stateful Domains
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Requests from the following domains / hosts will receive stateful API
|
||||
| authentication cookies. Typically, these should include your local
|
||||
| and production domains which access your API via a frontend SPA.
|
||||
|
|
||||
*/
|
||||
|
||||
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
|
||||
'%s%s',
|
||||
'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
|
||||
Sanctum::currentApplicationUrlWithPort()
|
||||
))),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Sanctum Guards
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This array contains the authentication guards that will be checked when
|
||||
| Sanctum is trying to authenticate a request. If none of these guards
|
||||
| are able to authenticate the request, Sanctum will use the bearer
|
||||
| token that's present on an incoming request for authentication.
|
||||
|
|
||||
*/
|
||||
|
||||
'guard' => ['web'],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Expiration Minutes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This value controls the number of minutes until an issued token will be
|
||||
| considered expired. If this value is null, personal access tokens do
|
||||
| not expire. This won't tweak the lifetime of first-party sessions.
|
||||
|
|
||||
*/
|
||||
|
||||
'expiration' => null,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Sanctum Middleware
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When authenticating your first-party SPA with Sanctum you may need to
|
||||
| customize some of the middleware Sanctum uses while processing the
|
||||
| request. You may change the middleware listed below as required.
|
||||
|
|
||||
*/
|
||||
|
||||
'middleware' => [
|
||||
'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
|
||||
'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class,
|
||||
],
|
||||
|
||||
];
|
||||
45
config/services.php
Normal file
45
config/services.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Third Party Services
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This file is for storing the credentials for third party services such
|
||||
| as Mailgun, Postmark, AWS and more. This file provides the de facto
|
||||
| location for this type of information, allowing packages to have
|
||||
| a conventional file to locate the various service credentials.
|
||||
|
|
||||
*/
|
||||
|
||||
'mailgun' => [
|
||||
'domain' => env('MAILGUN_DOMAIN'),
|
||||
'secret' => env('MAILGUN_SECRET'),
|
||||
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
|
||||
'scheme' => 'https',
|
||||
],
|
||||
|
||||
'postmark' => [
|
||||
'token' => env('POSTMARK_TOKEN'),
|
||||
],
|
||||
|
||||
'ses' => [
|
||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
||||
],
|
||||
|
||||
'google' => [
|
||||
'client_id' => env('GOOGLE_CLIENT_ID'),
|
||||
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
|
||||
'redirect' => env('GOOGLE_REDIRECT_URI'),
|
||||
],
|
||||
|
||||
'twitter' => [
|
||||
'client_id' => env('TWITTER_CLIENT_ID'),
|
||||
'client_secret' => env('TWITTER_CLIENT_SECRET'),
|
||||
'redirect' => env('TWITTER_REDIRECT_URI'),
|
||||
],
|
||||
];
|
||||
201
config/session.php
Normal file
201
config/session.php
Normal file
@@ -0,0 +1,201 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Session Driver
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default session "driver" that will be used on
|
||||
| requests. By default, we will use the lightweight native driver but
|
||||
| you may specify any of the other wonderful drivers provided here.
|
||||
|
|
||||
| Supported: "file", "cookie", "database", "apc",
|
||||
| "memcached", "redis", "dynamodb", "array"
|
||||
|
|
||||
*/
|
||||
|
||||
'driver' => env('SESSION_DRIVER', 'file'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Lifetime
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify the number of minutes that you wish the session
|
||||
| to be allowed to remain idle before it expires. If you want them
|
||||
| to immediately expire on the browser closing, set that option.
|
||||
|
|
||||
*/
|
||||
|
||||
'lifetime' => env('SESSION_LIFETIME', 120),
|
||||
|
||||
'expire_on_close' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Encryption
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option allows you to easily specify that all of your session data
|
||||
| should be encrypted before it is stored. All encryption will be run
|
||||
| automatically by Laravel and you can use the Session like normal.
|
||||
|
|
||||
*/
|
||||
|
||||
'encrypt' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session File Location
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When using the native session driver, we need a location where session
|
||||
| files may be stored. A default has been set for you but a different
|
||||
| location may be specified. This is only needed for file sessions.
|
||||
|
|
||||
*/
|
||||
|
||||
'files' => storage_path('framework/sessions'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Database Connection
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When using the "database" or "redis" session drivers, you may specify a
|
||||
| connection that should be used to manage these sessions. This should
|
||||
| correspond to a connection in your database configuration options.
|
||||
|
|
||||
*/
|
||||
|
||||
'connection' => env('SESSION_CONNECTION'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Database Table
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When using the "database" session driver, you may specify the table we
|
||||
| should use to manage the sessions. Of course, a sensible default is
|
||||
| provided for you; however, you are free to change this as needed.
|
||||
|
|
||||
*/
|
||||
|
||||
'table' => 'sessions',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Cache Store
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| While using one of the framework's cache driven session backends you may
|
||||
| list a cache store that should be used for these sessions. This value
|
||||
| must match with one of the application's configured cache "stores".
|
||||
|
|
||||
| Affects: "apc", "dynamodb", "memcached", "redis"
|
||||
|
|
||||
*/
|
||||
|
||||
'store' => env('SESSION_STORE'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Sweeping Lottery
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Some session drivers must manually sweep their storage location to get
|
||||
| rid of old sessions from storage. Here are the chances that it will
|
||||
| happen on a given request. By default, the odds are 2 out of 100.
|
||||
|
|
||||
*/
|
||||
|
||||
'lottery' => [2, 100],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Cookie Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may change the name of the cookie used to identify a session
|
||||
| instance by ID. The name specified here will get used every time a
|
||||
| new session cookie is created by the framework for every driver.
|
||||
|
|
||||
*/
|
||||
|
||||
'cookie' => env(
|
||||
'SESSION_COOKIE',
|
||||
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
|
||||
),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Cookie Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The session cookie path determines the path for which the cookie will
|
||||
| be regarded as available. Typically, this will be the root path of
|
||||
| your application but you are free to change this when necessary.
|
||||
|
|
||||
*/
|
||||
|
||||
'path' => '/',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Cookie Domain
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may change the domain of the cookie used to identify a session
|
||||
| in your application. This will determine which domains the cookie is
|
||||
| available to in your application. A sensible default has been set.
|
||||
|
|
||||
*/
|
||||
|
||||
'domain' => env('SESSION_DOMAIN'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| HTTPS Only Cookies
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| By setting this option to true, session cookies will only be sent back
|
||||
| to the server if the browser has a HTTPS connection. This will keep
|
||||
| the cookie from being sent to you when it can't be done securely.
|
||||
|
|
||||
*/
|
||||
|
||||
'secure' => env('SESSION_SECURE_COOKIE'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| HTTP Access Only
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Setting this value to true will prevent JavaScript from accessing the
|
||||
| value of the cookie and the cookie will only be accessible through
|
||||
| the HTTP protocol. You are free to modify this option if needed.
|
||||
|
|
||||
*/
|
||||
|
||||
'http_only' => true,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Same-Site Cookies
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option determines how your cookies behave when cross-site requests
|
||||
| take place, and can be used to mitigate CSRF attacks. By default, we
|
||||
| will set this value to "lax" since this is a secure default value.
|
||||
|
|
||||
| Supported: "lax", "strict", "none", null
|
||||
|
|
||||
*/
|
||||
|
||||
'same_site' => 'lax',
|
||||
|
||||
];
|
||||
204
config/sms.php
Normal file
204
config/sms.php
Normal file
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Driver
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This value determines which of the following gateway to use.
|
||||
| You can switch to a different driver at runtime.
|
||||
|
|
||||
*/
|
||||
'default' => env('SMS_DRIVER', 'textlocal'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| List of Drivers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These are the list of drivers to use for this package.
|
||||
| You can change the name. Then you'll have to change
|
||||
| it in the map array too.
|
||||
|
|
||||
*/
|
||||
'drivers' => [
|
||||
// Install: composer require aws/aws-sdk-php
|
||||
'sns' => [
|
||||
'key' => 'Your AWS SNS Access Key',
|
||||
'secret' => 'Your AWS SNS Secret Key',
|
||||
'region' => 'Your AWS SNS Region',
|
||||
'from' => 'Your AWS SNS Sender ID', // sender
|
||||
'type' => 'Transactional', // Or: 'Promotional'
|
||||
],
|
||||
'textlocal' => [
|
||||
'url' => 'http://api.textlocal.in/send/', // Country Wise this may change.
|
||||
'username' => 'Your Username',
|
||||
'hash' => 'Your Hash',
|
||||
'from' => 'Sender Name', // sender
|
||||
],
|
||||
// Install: composer require twilio/sdk
|
||||
'twilio' => [
|
||||
'sid' => 'Your SID',
|
||||
'token' => 'Your Token',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
// Install: composer require mediaburst/clockworksms
|
||||
'clockwork' => [
|
||||
'key' => 'Your clockwork API Key',
|
||||
],
|
||||
'linkmobility' => [
|
||||
'url' => 'http://simple.pswin.com', // Country Wise this may change.
|
||||
'username' => 'Your Username',
|
||||
'password' => 'Your Password',
|
||||
'from' => 'Sender name', // sender
|
||||
],
|
||||
// Install: composer require melipayamak/php
|
||||
'melipayamak' => [
|
||||
'username' => 'Your Username',
|
||||
'password' => 'Your Password',
|
||||
'from' => 'Your Default From Number',
|
||||
'flash' => false,
|
||||
],
|
||||
'melipayamakpattern' => [
|
||||
'username' => 'Your Username',
|
||||
'password' => 'Your Password',
|
||||
],
|
||||
// Install: composer require kavenegar/php
|
||||
'kavenegar' => [
|
||||
'apiKey' => 'Your Api Key',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
'smsir' => [
|
||||
'url' => 'https://ws.sms.ir/',
|
||||
'apiKey' => 'Your Api Key',
|
||||
'secretKey' => 'Your Secret Key',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
'tsms' => [
|
||||
'url' => 'http://www.tsms.ir/soapWSDL/?wsdl',
|
||||
'username' => 'Your Username',
|
||||
'password' => 'Your Password',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
'farazsms' => [
|
||||
'url' => '188.0.240.110/services.jspd',
|
||||
'username' => 'Your Username',
|
||||
'password' => 'Your Password',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
'farazsmspattern' => [
|
||||
'url' => 'http://ippanel.com/patterns/pattern',
|
||||
'username' => 'Your Username',
|
||||
'password' => 'Your Password',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
'smsgatewayme' => [
|
||||
'apiToken' => 'Your Api Token',
|
||||
'from' => 'Your Default Device ID',
|
||||
],
|
||||
'smsgateway24' => [
|
||||
'url' => 'https://smsgateway24.com/getdata/addsms',
|
||||
'token' => 'Your Api Token',
|
||||
'deviceid' => 'Your Default Device ID',
|
||||
'from' => 'Device SIM Slot. 0 or 1', // sim
|
||||
],
|
||||
'ghasedak' => [
|
||||
'url' => 'http://api.iransmsservice.com',
|
||||
'apiKey' => 'Your api key',
|
||||
'from' => 'Your Default From Number',
|
||||
],
|
||||
// Install: composer require sms77/api
|
||||
'sms77' => [
|
||||
'apiKey' => 'Your API Key',
|
||||
'flash' => false,
|
||||
'from' => 'Sender name',
|
||||
],
|
||||
'sabapayamak' => [
|
||||
'url' => 'https://api.SabaPayamak.com',
|
||||
'username' => 'Your Sabapayamak Username',
|
||||
'password' => 'Your Sabapayamak Password',
|
||||
'from' => 'Your Default From Number',
|
||||
'token_valid_day' => 30,
|
||||
],
|
||||
'lsim' => [
|
||||
'username' => 'Your LSIM login',
|
||||
'password' => 'Your LSIM password',
|
||||
'from' => 'Your LSIM Sender ID', // sender
|
||||
],
|
||||
'rahyabcp' => [
|
||||
'url' => 'https://p.1000sms.ir/Post/Send.asmx?wsdl',
|
||||
'username' => 'Your Rahyabcp login',
|
||||
'password' => 'Your Rahyabcp password',
|
||||
'from' => 'Your Default From Number',
|
||||
'flash' => false,
|
||||
],
|
||||
'rahyabir' => [
|
||||
'url' => 'https://api.rahyab.ir',
|
||||
'username' => 'Your Rahyabir Username',
|
||||
'password' => 'Your Rahyabir Password',
|
||||
'company' => 'Your Rahyabir Company',
|
||||
'from' => 'Your Default From Number',
|
||||
'token_valid_day' => 1,
|
||||
],
|
||||
'd7networks' => [
|
||||
'url' => 'https://api.d7networks.com',
|
||||
'username' => 'Your D7networks ClientId',
|
||||
'password' => 'Your D7networks clientSecret',
|
||||
'originator' => 'SignOTP',
|
||||
'report_url' => '',
|
||||
'token_valid_day' => 1,
|
||||
],
|
||||
'hamyarsms' => [
|
||||
'url' => 'http://payamakapi.ir/SendService.svc?singleWsdl',
|
||||
'username' => 'Your Hamyarsms Username',
|
||||
'password' => 'Your Hamyarsms Password',
|
||||
'from' => 'Your Default From Number',
|
||||
'flash' => false,
|
||||
],
|
||||
'smsapi' => [
|
||||
'url' => 'http://www.smsapi.si/poslji-sms',
|
||||
'username' => 'Your SMSApi Username',
|
||||
'password' => 'Your SMSApi Password',
|
||||
'from' => 'Your Default From Number',
|
||||
'cc' => 'Your Default Country Code',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Class Maps
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the array of Classes that maps to Drivers above.
|
||||
| You can create your own driver if you like and add the
|
||||
| config in the drivers array and the class to use for
|
||||
| here with the same name. You will have to extend
|
||||
| Tzsk\Sms\Abstracts\Driver in your driver.
|
||||
|
|
||||
*/
|
||||
'map' => [
|
||||
'sns' => \Tzsk\Sms\Drivers\Sns::class,
|
||||
'textlocal' => \Tzsk\Sms\Drivers\Textlocal::class,
|
||||
'twilio' => \Tzsk\Sms\Drivers\Twilio::class,
|
||||
'smsgateway24' => \Tzsk\Sms\Drivers\SmsGateway24::class,
|
||||
'clockwork' => \Tzsk\Sms\Drivers\Clockwork::class,
|
||||
'linkmobility' => \Tzsk\Sms\Drivers\Linkmobility::class,
|
||||
'melipayamak' => \Tzsk\Sms\Drivers\Melipayamak::class,
|
||||
'melipayamakpattern' => \Tzsk\Sms\Drivers\Melipayamakpattern::class,
|
||||
'kavenegar' => \Tzsk\Sms\Drivers\Kavenegar::class,
|
||||
'smsir' => \Tzsk\Sms\Drivers\Smsir::class,
|
||||
'tsms' => \Tzsk\Sms\Drivers\Tsms::class,
|
||||
'farazsms' => \Tzsk\Sms\Drivers\Farazsms::class,
|
||||
'farazsmspattern' => \Tzsk\Sms\Drivers\Farazsmspattern::class,
|
||||
'ghasedak' => \Tzsk\Sms\Drivers\Ghasedak::class,
|
||||
'sms77' => \Tzsk\Sms\Drivers\Sms77::class,
|
||||
'sabapayamak' => \Tzsk\Sms\Drivers\SabaPayamak::class,
|
||||
'lsim' => \Tzsk\Sms\Drivers\LSim::class,
|
||||
'rahyabcp' => \Tzsk\Sms\Drivers\Rahyabcp::class,
|
||||
'rahyabir' => \Tzsk\Sms\Drivers\Rahyabir::class,
|
||||
'd7networks' => \Tzsk\Sms\Drivers\D7networks::class,
|
||||
'hamyarsms' => \Tzsk\Sms\Drivers\Hamyarsms::class,
|
||||
'smsapi' => \Tzsk\Sms\Drivers\SmsApi::class,
|
||||
],
|
||||
];
|
||||
36
config/view.php
Normal file
36
config/view.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| View Storage Paths
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Most templating systems load templates from disk. Here you may specify
|
||||
| an array of paths that should be checked for your views. Of course
|
||||
| the usual Laravel view path has already been registered for you.
|
||||
|
|
||||
*/
|
||||
|
||||
'paths' => [
|
||||
resource_path('views'),
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Compiled View Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option determines where all the compiled Blade templates will be
|
||||
| stored for your application. Typically, this is within the storage
|
||||
| directory. However, as usual, you are free to change this value.
|
||||
|
|
||||
*/
|
||||
|
||||
'compiled' => env(
|
||||
'VIEW_COMPILED_PATH',
|
||||
realpath(storage_path('framework/views'))
|
||||
),
|
||||
|
||||
];
|
||||
Reference in New Issue
Block a user