# Installation

The instructions below will help you to properly install the generated package to the lavalite project.

## Location

Extract the package contents to the folder 

`/packages/movie_site/movie_site/`

## Composer

Add the below entries in the `composer.json` file's autoload section and run the command `composer dump-autoload` in terminal.

```json

...
     "autoload": {

        "psr-4": {
            ... ,
            "MovieSite\\MovieSite\\": "packages/movie_site/movie_site/src",
            "MovieSite\\MovieSite\\Seeders\\": "packages/movie_site/movie_site/database/seeders"
            
            ...
        }
    },
...

```

## Config

Add the entries in service provider in `config/app.php`

```php

...
    'providers'       => [
        ...
        
        MovieSite\MovieSite\Providers\MovieSiteServiceProvider::class,
        
        ...
    ],

    ...

    'alias'             => [
        ...
        
        'MovieSite'  => MovieSite\MovieSite\Facades\MovieSite::class,
        
        ...
    ]
...

```

## Migrate

After service provider is set run the commapnd to migrate and seed the database.


    php artisan migrate
    php artisan db:seed --class=MovieSite\\MovieSite\\Seeders\\MovieSiteTableSeeder

## Publishing


**Publishing configuration**

    php artisan vendor:publish --provider="MovieSite\MovieSite\Providers\MovieSiteServiceProvider" --tag="config"

**Publishing language**

    php artisan vendor:publish --provider="MovieSite\MovieSite\Providers\MovieSiteServiceProvider" --tag="lang"

**Publishing views**

    php artisan vendor:publish --provider="MovieSite\MovieSite\Providers\MovieSiteServiceProvider" --tag="view"


## URLs and APIs


### Web Urls

**Admin**

    http://path-to-route-folder/admin/movie_site/{modulename}

**User**

    http://path-to-route-folder/user/movie_site/{modulename}

**Public**

    http://path-to-route-folder/movie_sites


### API endpoints

**List**
 
    http://path-to-route-folder/api/user/movie_site/{modulename}
    METHOD: GET

**Create**

    http://path-to-route-folder/api/user/movie_site/{modulename}
    METHOD: POST

**Edit**

    http://path-to-route-folder/api/user/movie_site/{modulename}/{id}
    METHOD: PUT

**Delete**

    http://path-to-route-folder/api/user/movie_site/{modulename}/{id}
    METHOD: DELETE

**Public List**

    http://path-to-route-folder/api/movie_site/{modulename}
    METHOD: GET

**Public Single**

    http://path-to-route-folder/api/movie_site/{modulename}/{slug}
    METHOD: GET