<?php

namespace App\Config;
trait Dropdown
{
    public static function getDropdownConfig($comp_id)
    {
        return
            [
                'agent' => [
                    'id' => 'user_id',
                    'text' => 'user_name',
                    'table' => 'users_master',
                    'where' => "status = 1",
                    'order_by' => 'user_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'branch' => [
                    'id' => 'branch_id',
                    'text' => 'branch_name',
                    'table' => 'branch_master',
                    'where' => 'status = 1',
                    'order_by' => 'branch_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'custom_variables' => [
                    'id' => 'id',
                    'text' => 'var_key',
                    'table' => 'custom_variables',
                    'where' => 'status = 1',
                    'order_by' => 'var_key',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => '`var_value`'
                ],
                'stateList' => [
                    'id' => 'state_id',
                    'text' => 'state_name',
                    'table' => 'admin_state_master',
                    'where' => 'status = 1',
                    'order_by' => 'state_name',
                    'preselect' => false,
                    'use_client' => false
                ],
                'country' => [
                    'id' => 'country_id',
                    'text' => "CONCAT(country_name, ' (', phone_code , ')')",
                    'table' => 'admin_country_master',
                    'where' => 'status = 1',
                    'order_by' => 'display_order',
                    'preselect' => false,
                    'use_client' => false,
                    'selectOtherField' => '`flag`, `phone_code`'
                ],
                'pincode' => [
                    'id' => 'id',
                    'text' => "pincode",
                    'table' => 'location_pincode',
                    'where' => 'status = 1',
                    'order_by' => 'pincode',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => '`pincode`, `city_id`, `state_id`, `origin_area`'
                ],
                'cityList' => [
                    'id' => 'id',
                    'text' => 'city_name',
                    'table' => 'location_city',
                    'where' => 'status = 1',
                    'order_by' => 'city_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'leadType' => [
                    'id' => 'id',
                    'text' => 'lead_name',
                    'table' => 'lead_type',
                    'where' => 'status = 1',
                    'order_by' => 'lead_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'customerType' => [
                    'id' => 'id',
                    'text' => 'category_name',
                    'table' => 'customer_category_master',
                    'where' => 'status = 1',
                    'order_by' => 'category_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'SMSTemplateDrop' => [
                    'id' => 'id',
                    'text' => 'template_name',
                    'table' => 'order_message_template',
                    'where' => 'status = 1 AND temp_type = "SMS"',
                    'order_by' => 'template_name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'template_body,template_for'
                ],
                'WhatsAppTemplateDrop' => [
                    'id' => 'id',
                    'text' => 'template_name',
                    'table' => 'order_message_template',
                    'where' => 'status = 1 AND temp_type = "WhatsApp"',
                    'order_by' => 'template_name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'JSON_UNQUOTE(template_body) AS template_body,template_for,is_whatsapp_business_template'
                ],
                'EmailTemplateDrop' => [
                    'id' => 'id',
                    'text' => 'template_for',
                    'table' => 'order_message_template',
                    'where' => 'status = 1 AND temp_type = "Email"',
                    'order_by' => 'template_for',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'template_body,subject,template_name'
                ],
                'orderStatus' => [
                    'id' => 'id',
                    'text' => 'status_name',
                    'table' => 'order_status',
                    'where' => 'status = 1',
                    'order_by' => 'status_sequence',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'status_sequence,color_code,status_type,mark_as_default_complete'
                ],
                'campaignName' => [
                    'id' => 'campaign_id',
                    'text' => 'campaign_name',
                    'table' => 'campaign_master',
                    'where' => 'status = 1',
                    'order_by' => 'campaign_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'groupDropdown' => [
                    'id' => 'id',
                    'text' => 'group_name',
                    'table' => 'users_group_master',
                    'where' => "status = 1",
                    'order_by' => 'group_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'tax' => [
                    'id' => 'tax_id',
                    'text' => 'tax_name',
                    'table' => 'tax_master',
                    'where' => 'tax_status = 1',
                    'order_by' => 'tax_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'itemCategory' => [
                    'id' => 'itemcat_id',
                    'text' => 'name',
                    'table' => 'itemcategory_master',
                    'where' => 'status = 1',
                    'order_by' => 'name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'total_tax'
                ],
                'itemGroup' => [
                    'id' => 'id',
                    'text' => 'group_name',
                    'table' => 'item_group_master',
                    'where' => 'status = 1',
                    'order_by' => 'group_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'itemList' => [
                    'id' => 'item_id',
                    'text' => 'item_name',
                    'table' => 'item_master',
                    'where' => 't1.status = 1 AND t2.sale=1',
                    'order_by' => 'item_name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'item_code, category_id, variant_id, group_id, item_desc, unit, rate, total_rate, including_tax, allow_negative_stock, img_path',
                    'left_join' => [
                        ['table' => 'item_group_master', 'join_predicate' => 't2.id=t1.group_id', 'use_client' => true],
                    ],
                    'table_alias' => ['item_master' => 't1', 'item_group_master' => 't2']
                ],
                'inventoryType' => [
                    'id' => 'id',
                    'text' => 'inventory_type_name',
                    'table' => 'inventory_type',
                    'where' => 'status = 1',
                    'order_by' => 'inventory_type_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'invoiceType' => [
                    'id' => 'id',
                    'text' => 'title',
                    'table' => 'invoice_type',
                    'where' => 'status = 1',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => true
                ],
                'leadStatusType' => [
                    'id' => 'id',
                    'text' => 'status_type',
                    'table' => 'lead_status_type',
                    'order_by' => 'status_type',
                    'preselect' => false,
                    'use_client' => false
                ],
                'apiProvider' => [
                    'id' => 'id',
                    'text' => 'name',
                    'table' => 'admin_lead_source_api_provider',
                    'where' => 'status = 1',
                    'order_by' => 'name',
                    'preselect' => false,
                    'use_client' => false
                ],
                'leadStatus' => [
                    'id' => 'id',
                    'text' => 'title',
                    'table' => 'lead_status',
                    'where' => 'status = 1',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'lead_status_type,color_code'
                ],
                'leadSource' => [
                    'id' => 'id',
                    'text' => 'title',
                    'table' => 'lead_source',
                    'where' => 'status = 1',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => true
                ],
                'itemPackage' => [
                    'id' => 'id',
                    'text' => 'package_name',
                    'table' => 'item_package_master',
                    'where' => 'status = 1',
                    'order_by' => 'package_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'paymentType' => [
                    'id' => 'id',
                    'text' => 'payment_name',
                    'table' => 'payment_type',
                    'where' => 'status = 1',
                    'order_by' => 'payment_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'vendorList' => [
                    'id' => 'id',
                    'text' => 'customer_name',
                    'table' => 'customer_master',
                    'where' => 'status = 1 AND customer_type = 3',
                    'order_by' => 'customer_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'dealerList' => [
                    'id' => 'id',
                    'text' => 'customer_name',
                    'table' => 'customer_master',
                    'where' => 'status = 1 AND customer_type = 2',
                    'order_by' => 'customer_name',
                    'preselect' => false,
                    'use_client' => true
                ],
                'courierListAdmin' => [
                    'id' => 'courier_api',
                    'text' => 'courier_name',
                    'table' => 'admin_courier_api_master',
                    'where' => 'status = 1',
                    'order_by' => 'courier_name',
                    'preselect' => false,
                    'use_client' => false,
                    'selectOtherField' => 'img'
                ],
                'pamentGatewayListAdmin' => [
                    'id' => 'api',
                    'text' => 'name',
                    'table' => 'admin_payment_gateway_master',
                    'where' => 'status = 1',
                    'order_by' => 'name',
                    'preselect' => false,
                    'use_client' => false,
                    'selectOtherField' => 'img'
                ],
                'purchaseList' => [
                    'id' => 'id',
                    'text' => 'CONCAT("PU#",id)',
                    'table' => 'purchase_master',
                    'where' => '1 = 1',
                    'order_by' => 'text',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'invoice_date'
                ],
                'customer_address' => [
                    'id' => 'id',
                    'text' => 'address_title',
                    'table' => 'customer_address_master',
                    'where' => 'address_title IS NOT NULL',
                    'order_by' => 'address_title',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'address_pincode, address_state_id, address_city_id, address_mobile, address, gst, is_default'
                ],
                'payment_mode' => [
                    'id' => 'id',
                    'text' => 'payment_name',
                    'table' => 'payment_type',
                    'where' => 'status = 1',
                    'order_by' => 'payment_name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'isDefault, status_sequence'
                ],
                'courier_list' => [
                    'id' => 't1.id',
                    'text' => 't1.title',
                    'table' => 'courier',
                    'where' => 't1.status = 1',
                    'order_by' => 't1.title',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 't2.courier_api',
                    'left_join' => [
                        ['table' => 'admin_courier_api_master', 'join_predicate' => 't2.courier_api=t1.courier_api', 'use_client' => false],
                    ],
                    'table_alias' => ['courier' => 't1', 'admin_courier_api_master' => 't2']
                ],
                'users' => [
                    'id' => 'user_id',
                    'text' => 'user_name',
                    'table' => 'users_master',
                    'where' => "status = 1",
                    'order_by' => 'user_name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'ext_no, user_code, profile, designation'
                ],
                'itemListPurchase' => [
                    'id' => 'item_id',
                    'text' => 'item_name',
                    'table' => 'item_master',
                    'where' => 't1.status = 1 AND t2.purchase=1',
                    'order_by' => 'item_name',
                    'preselect' => false,
                    'use_client' => true,
                    'left_join' => [
                        ['table' => 'item_group_master', 'join_predicate' => 't2.id=t1.group_id', 'use_client' => true],
                    ],
                    'table_alias' => ['item_master' => 't1', 'item_group_master' => 't2']
                ],
                'itemListOnly' => [
                    'id' => 'item_id',
                    'text' => 'item_name',
                    'table' => 'item_master',
                    'where' => 'status = 1',
                    'order_by' => 'item_name',
                    'preselect' => false,
                    'use_client' => true,
                    'selectOtherField' => 'rate'
                ],
                'templateFor' => [
                    'id' => 'template_for',
                    'text' => 'title',
                    'table' => 'client_template_for',
                    'where' => 'status = 1',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => false
                ],
                'templateVariables' => [
                    'id' => 'variable_value',
                    'text' => 'variable_name',
                    'table' => 'client_template_variables',
                    'where' => 'status = 1',
                    'order_by' => 'variable_name',
                    'preselect' => false,
                    'use_client' => false
                ],
                'whatsappProvider' => [
                    'id' => 'id',
                    'text' => 'title',
                    'table' => 'whatsapp_solution_providers',
                    'where' => 'status = 1 AND provider IS NOT NULL',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => false,
                    'selectOtherField' => 'provider, template_message'
                ],
                'smsProvider' => [
                    'id' => 'id',
                    'text' => 'title',
                    'table' => 'sms_solution_providers',
                    'where' => 'status = 1 AND provider IS NOT NULL',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => false,
                    'selectOtherField' => 'provider'
                ],
                'dialProvider' => [
                    'id' => 'id',
                    'text' => 'title',
                    'table' => 'dial_solution_providers',
                    'where' => 'status = 1 AND provider IS NOT NULL',
                    'order_by' => 'title',
                    'preselect' => false,
                    'use_client' => false,
                    'selectOtherField' => 'provider'
                ],
            ];
    }
}
