<?php

use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;

class PermissionTableSeeder extends Seeder
{
//    php artisan db:seed --class=PermissionTableSeeder
//    php artisan cache:forget spatie.permission.cache
    /**
     *
     */
    public function run()
    {
        $permissions = array(
            'Role List',
            'Role Create',
            'Role Edit',

            'hr-Currency List',
            'Currency  Create',
            'Currency E​dit',

            'POS Wholesale Create',
            'POS Wholesale List',
            'POS Wholesale Show',
            'POS Retail Create',
            'POS Retail List',
            'POS Retail Show',

            'Purchase Item create',
            'Purchase Material create',
            'Purchase List',
            'Purchase show',

            'Sale Request List',
            'Sale Request Show',
            'Sale Request Approve',
            'Sale Request Reject',
            'Sale Request Print',

            'Purchase Order List',
            'Purchase Order Show',

            'Request Stock List',
            'Request Stock Create',
            'Request Stock Show',
            'Request Stock Approve',
            'Request Stock Reject',
            'Request Stock Print',

            'Production Request internal List',
            'Production Request internal Show',
            'Production Request internal Create',
            'Production Request internal Approve',
            'Production Request internal Done',
            'Production Request internal Return Item',

            'Production Request external List',
            'Production Request external Show',
            'Production Request external Create',
            'Production Request external Approve',
            'Production Request external Done',
            'Production Request external Return Item',

            'Sale Payment List',
            'Sale Payment Show',
            'Sale Payment Add Payment',

            'Sale Request Payment List',
            'Sale Request Payment show',

            'Purchase Order Payment List',
            'Purchase Order Payment Show',

            'Purchase Payment List',
            'Purchase Payment Show',
            'Purchase Payment Add Payment',

            'Seller  Create',
            'Seller List',
            'Seller Edit',
            'Seller Show',
            'Seller Active',

            'Tailor Create',
            'Tailor List',
            'Tailor Edit',

            'Customer Create',
            'Customer List',
            'Customer Show',
            'Customer Edit',

            'Driver Create',
            'Driver List',
            'Driver Edit',

            'Suppliers Create',
            'Suppliers Edit',
            'Suppliers List',
            'Suppliers Show',

            'Warehouse Create',
            'Warehouse Edit',
            'Warehouse Show',
            'Warehouse List',
            'Warehouse Set-main',

            'Products List',
            'Products Create',
            'Products Edit',
            'Products Show',
            'Products Duplicate',

            'Material List',
            'Material Create',
            'Material Edit',
            'Material Show',

            'Category List',
            'Category Create',
            'Category Edit',

            'Unit List',
            'Unit Create',
            'Unit Edit',

            'Brand List',
            'Brand Create',
            'Brand Edit',

            'Color List',
            'Color Create',
            'Color Edit',

            'Size List',
            'Size Create',
            'Size Edit',


            'Production List',
            'Production Create',
            'Production Edit',

            'Discount List',
            'Discount Edit',
            'Customer Discount List',
            'Discount Create',

            'Report Stock List',
            'Report Purchase List',
            'Report Sales List',
            'Report Sales Request List',
            'Report Sales Request Payment List',
            'Report Payment List',
            'Report Purchase Payment List',
            'Report Sale  Detail List',
            'Report Delivery List',
            'Report Production List',

            'Material Request List alert',
            'Sale Request List alert',
            'Purchase  Order List alert',
            'Request Stock List alert',
            'Nearly Out Stock List alert',
            'Out Stock List alert',
//            Permission Hr          //
            //  employee
            'Employee List',
            'Employee Create',
            'Employee Show',
            'Employee Show Contract',
            'Employee Edit',
            'Employee Account m Setting',
            'Employee active',


            'Employee Resign List',
            'Employee Resign Create',
            'Employee Resign Edit',
            'Employee Resign Delete',


            'Employee Rotate List',
            'Employee Rotate Show',
            'Employee Rotate Edit',
            'Employee Rotate Delete' ,


            'Employee Rotate Promote List',
            'Employee Rotate Promote Edit',
            'Employee Rotate Promote Show',
            'Employee Rotate Promote Delete',

            'Travel Request List',
            'Travel Request  Create',
            'Travel Request  Show',
            'Travel Request  Approve',
            'Travel Request  Edit',
            'Travel Request  Delete',

            'Overtime List',
            'Overtime Create',
            'Overtime Show',
            'Overtime Edit',
            'Overtime Delete',
            'Overtime Approve',

            'Benefit List',
            'Benefit Create',
            'Benefit Edit',
            'Benefit Delete',

            'Loan List',
            'Loan Create',
            'Loan Edit',
            'Loan Delete',
//            attendance
            'Attendance Finger List',
            'Attendance Finger Create',
            'Attendance Finger Edit',
            'Attendance Finger Delete',

            'Generate Attendance List',
            'Generate Attendance Create',
            'Generate Attendance Delete',

            'Take Leave List',
            'Take Leave Create',
            'Take Leave Edit',
            'Take Leave Approve',
            'Take Leave Status',
            'Take Leave View',
            'Take Leave Delete',

            'Take Leave Authorize List',
            'Take Leave Authorize Create',
            'Take Leave Authorize Edit',
            'Take Leave Authorize Approve',
            'Take Leave Authorize Show',
            'Take Leave Authorize Status',

            'Total Leave  List',
            'Total Leave  Edit',
            'Total Leave  Generate',
//            payroll
            'Salary  List',
            'Salary  Create',
            'Salary  Show',
            'Salary  Delete',
            'Salary  Advance List',
            'Salary  Advance Create',
            'Salary  Advance Edit',
            'Salary  Advance Delete',

//            HRD
            'In-External Training List',
            'In-External Training Create',
            'In-External Training Edit',

            'External Lecture List',
            'External Lecture Create',
            'External Lecture Edit',

            'Training Course List',
            'Training Course Create',
            'Training Course Edit',
//            Performance
            'Evaluation List',
            'Evaluation Create',
            'Evaluation Show',
            'Evaluation Edit',

            'Development plan List',
            'Development plan Create',
            'Development plan Edit',

            'Recommendation List',
            'Recommendation Create',
            'Recommendation Edit',

            'Training List',
            'Training Create',
            'Training Edit',

            'Hard Skill List',
            'Hard Skill Create',
            'Hard Skill Edit',

            'Soft Skill List',
            'Soft Skill Create',
            'Soft Skill Edit',
    //recruitment
            'Job Position List',
            'Job Position Create',
            'Job Position Edit',
            'Job Position Show',

            'Candidate List',
            'Candidate Create',
            'Candidate Edit',
            'Candidate Show',
            'Candidate Delete',

            'Employment type List',
            'Employment type Create',
            'Employment type Edit',

            'Experience level List',
            'Experience level Create',
            'Experience level Edit',

            'Job Function List',
            'Job Function Create',
            'Job Function Edit',

            'Education level List',
            'Education level Create',
            'Education level Edit',

//            Report Employee
            'Employee Report List',
//            Report Attendance
            'Attendance  List',
            'Report Leave Summary List',
            'Report Attendance From Fingerprint List',
            'Report Daily Attendance Summary List',
            'Report Attendance  List Detail',
//            Report  Payroll
            'Payroll List',
            'Report Salary Authorize  List',
            'Report Advance Salary  List',
//            setup
            'Employment Status List',
            'Employment Status Create',
            'Employment Status Edit',
            'Employment Status Delete',

            'Holiday List',
            'Holiday Create',
            'Holiday Edit',
            'Holiday Delete',

            'Exchange Rate List',
            'Exchange Rate Create',
            'Exchange Rate Edit',
            'Exchange Rate Delete',

            'Benefit type List',
            'Benefit type Create',
            'Benefit type Edit',
            'Benefit type Delete',

//            setting
            'Branch List',
            'Branch Create',
            'Branch Edit',
            'Branch set_main',

            'Department List',
            'Department Create',
            'Department Edit',
            'Department Delete',

            'Position List',
            'Position Create',
            'Position Edit',
            'Position Delete',

            'Time Policy List',
            'Time Policy Create',
            'Time Policy Edit',
            'Time Policy Delete',

            'Absent Policy List',
            'Absent Policy Create',
            'Absent Policy Edit',
            'Absent Policy Delete',

            'OT Policy List',
            'OT Policy Create',
            'OT Policy  Edit',
            'OT Policy  Delete',

            'Salary tax List',
            'Salary tax Create',
            'Salary tax Edit',
            'Salary tax Delete',


        );


        foreach ($permissions as $permission) {
            Permission::create(['name' => $permission]);
        }
    }
}
