Try to plan your to do list last night so you have clear view of day
    and set your system to see himself settle






edu_menu
    menu_id
    name
    parent_id = menu_id of if menu has sub item
    module_id === list page
    icon === menu,permission

suppose a scenario
menu_id | name | parent_id| module_id| icon| sort |

1
    setting
    null
    null
    null
    1






edu_module
    module_id
    name
    link

edu_role
    role_id
    name
edu_permission
    role_id
    module_id
    yet to decide
    

    


    dashboard.show
    receipt.show
    receipt.add
    receipt.

    title of main menu 
    title of sub menu

+--------+--------+----------+----------+-----------+--------+--------+--------+----------+----------+-----------+--------
| menu_id | label                                                   | parent_id     | module_id     | sort_index  |   icon|
+--------+--------+----------+----------+-----------+--------+--------+--------+----------+----------+-----------+--------
|      1  | menu.general                                            | NULL          | F23PB31       | F23PB31      | 3    |
|      2  | menu.master_setting                                     | NULL          | F23PB409      | F23PB409     | 3    |
|      3  | menu.student                                            | NULL          | E23PB211      | E23PB211     | 2    |
|      4  | menu.users                                              | NULL          | F23PK11       | F23PK11      | 3    |
|      5  | menu.lead                                               | NULL          | E23PS211      | E23PS211     | 3    |
|      6  | menu.acount                                             | NULL          | E23PS211      | E23PS211     | 3    |
|      7  | menu.master_setting.account                             | 2             | E23PS211      | E23PS211     | 3    |
|      8  | menu.master_setting.academic                            | 2             | E23PS211      | E23PS211     | 3    |
|      9  | menu.master_setting.lead                                | 2             | E23PS211      | E23PS211     | 3    |
|      10 | menu.master_setting.account.receipt                     | 7             | E23PS211      | E23PS211     | 3    |
|      11 | menu.master_setting.account.account_group               | 7             | E23PS211      | E23PS211     | 3    |
|      12 | menu.master_setting.academic.course                     | 8             | E23PS211      | E23PS211     | 3    |
|      13 | menu.master_setting.academic.package                    | 8             | E23PS211      | E23PS211     | 3    |
|      14 | menu.master_setting.academic.discount                   | 8             | E23PS211      | E23PS211     | 3    |
|      15 | menu.master_setting.academic.finance                    | 8             | E23PS211      | E23PS211     | 3    |
|      16 | menu.master_setting.academic.branch                     | 8             | E23PS211      | E23PS211     | 3    |
|      17 | menu.master_setting.academic.rollno                     | 8             | E23PS211      | E23PS211     | 3    |
|      18 | menu.master_setting.academic.uid                        | 8             | E23PS211      | E23PS211     | 3    |
|      19 | menu.master_setting.academic.academic_year              | 8             | E23PS211      | E23PS211     | 3    |
|      20 | menu.master_setting.academic.application_type           | 8             | E23PS211      | E23PS211     | 3    |
|      21 | menu.master_setting.academic.batch_type                 | 8             | E23PS211      | E23PS211     | 3    |
|      22 | menu.master_setting.academic.document_type              | 8             | E23PS211      | E23PS211     | 3    |
|      23 | menu.master_setting.academic.branch                     | 8             | E23PS211      | E23PS211     | 3    |
+--------+--------+----------+----------+-----------+--------+--------+--------+----------+----------+-----------+--------

harr group of parent and children have separat sort_index
module_id is list of all the page url in module_table

agar visitor din me 4 bar visit krte he toh din ka pahle visit pe hii msg jana he
add not condition in schedule campaign condition
menu_id 

step 1: add menu 
step 2: add permission
step 3: add role permission
step 4: assign role


<i class="icofont icofont-building-alt"></i> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| menu_id | label                                                   | parent_id     | name                 | route                     |   icon                                             | sort_index|
|      1  | menu.general                                            | NULL          | General              | NULL                      |   NULL                                             | 1         |
|      2  | menu.setting                                            | NULL          | Settings             | NULL                      |   NULL                                             | 2
|      3  | menu.student                                            | NULL          | Student              | NULL                      |   NULL                                             | 3
|      4  | menu.user                                               | NULL          | Users                | NULL                      |   NULL                                             | 4
|      5  | menu.lead                                               | NULL          | Leads                | NULL                      |   NULL                                             | 5
|      6  | menu.acount                                             | NULL          | Account              | NULL                      |   NULL                                             | 6
|      7  | menu.setting.account                                    | 2             | Account              | NULL                      |   <i class="fa fa-bank iconSize"></i>              | 3
|      8  | menu.setting.academic                                   | 2             | Academic             | NULL                      |   <i class="fa fa-mortar-board iconSize"></i>      | 2         |
|      9  | menu.setting.lead                                       | 2             | Lead                 | NULL                      |   <i class="icofont icofont-support"></i>          | 1
|      10 | menu.setting.lead.integration                           | 9             | Integration          | apiList                   |     NULL                                           | 1
|      11 | menu.setting.lead.template                              | 9             | Template             | smsTemplateList           |     NULL                                           | 2
|      12 | menu.setting.lead.template_mapping                      | 9             | Template Mapping     | scheduleTemplateList      |     NULL                                           | 3
|      13 | menu.setting.lead.schedule_campaign                     | 9             | Schedule Campaign    | scheduleCampaignList      |     NULL                                           | 4
|      14 | menu.setting.lead.default_number                        | 9             | Default Number       | defaultNumberList         |     NULL                                           | 5
|      15 | menu.setting.lead.gallery                               | 9             | Gallery              | imageList                 |     NULL                                           | 6
|      16 | menu.setting.lead.lead_score                            | 9             | Lead Score           | leadFeedbackTypeList      |     NULL                                           | 7
|      17 | menu.setting.lead.lead_category                         | 9             | Lead Category        | leadStageList             |     NULL                                           | 8
|      18 | menu.setting.academic.branch                            | 8             | branch               | branchList                |     NULL                                           | 1
|      19 | menu.setting.academic.finance                           | 8             | finance              | financeList               |     NULL                                           | 2
|      20 | menu.setting.academic.academic_year                     | 8             | Academic Year        | academicList              |     NULL                                           | 3
|      21 | menu.setting.academic.course                            | 8             | Course               | courseList                |     NULL                                           | 4
|      22 | menu.setting.academic.rollList                          | 8             | Roll                 | rollList                  |     NULL                                           | 5
|      23 | menu.setting.academic.uid                               | 8             | UID                  | uidList                   |     NULL                                           | 6
|      24 | menu.setting.academic.application_type                  | 8             | Application Type     | applicationTypeList       |     NULL                                           | 7
|      25 | menu.setting.academic.batch_type                        | 8             | Batch Type           | batchTypeList             |     NULL                                           | 8
|      26 | menu.setting.academic.batch                             | 8             | Batch                | batchList                 |     NULL                                           | 9
|      27 | menu.setting.academic.discount_type                     | 8             | Discount Type        | discountList              |     NULL                                           | 10
|      28 | menu.setting.academic.document_type                     | 8             | Document Type        | documentList              |     NULL                                           | 11
|      29 | menu.setting.academic.package                           | 8             | Course Package       | coursePackageList         |     NULL                                           | 12
|      30 | menu.setting.account.receipt                            | 7             | Course Receipt       | accountReceiptList        |     NULL                                           | 1
|      31 | menu.setting.account.ledger_group                       | 7             | Account Group        | groupList                 |     NULL                                           | 2
|      32 | menu.setting.account.ledger                             | 7             | Account Ledger       | ledgerList                |     NULL                                           | 3
|      33 | menu.account.bank_reconcil                              | 6             | Bank Reconcil        | reconcilList              |    <i class="icofont icofont-support"></i>         | 1
|      34 | menu.lead.task                                          | 5             | Task                 | taskList                  |     TODO                                           | 1
|      35 | menu.lead.duplicate                                     | 5             | Duplicate            | duplicateList             |     <i class="icofont icofont-group-students"></i> | 2
|      36 | menu.lead.daily_report                                  | 5             | Daily Report         | followupReport            |    <i class="icofont icofont-support"></i>         | 3
|      37 | menu.lead.leads                                         | 5             | Leads                | enquireList               |    <i class="icofont icofont-support"></i>         | 4
|      38 | menu.user.user                                          | 4             | User                 | userList                  |    <i class="icofont icofont-support"></i>         | 1
|      39 | menu.user.role                                          | 4             | Role                 | roleList                  |    <i class="icofont icofont-support"></i>         | 2
|      40 | menu.user.teams                                         | 4             | Team                 | null                      |    <i class="icofont icofont-support"></i>         | 3


table
  edu_menu_permission
      permission_id
      menu_id
      permission_name

user of company creation === superadmin
checkuser type is user is superadmin or not || use column isAdmin
declare one module variable every main controller and store parent menu lable liek
lead
finance
academic



+----------------+---------+-------------------------------------+--------------------------------+----------------------------------+
  permission_id | menu_id  | permission_name                      | slug_name                     |sort_index                        |
~~~~~~~~~~~~~~~-+~~~-------+--------------------------------------+-------------------------------+----------------------------------+
  1             |37        | lead-save                            |Can Save                       | 1
  2             |37        | lead-edit                            |Can Edit                       | 2
  3             |37        | lead-update                          |Can Update                     | 3
  4             |37        | lead-delete                          |                               | 4
  5             |37        | lead-change-status                   |                               | 5
  6             |37        | lead-change-assign                   |                               | 6
  7             |37        | lead-import                          |                               | 7
  8             |37        | lead-export                          |                               | 8
  9             |37        | lead-contact-visibility-list         |                               | 9
  10            |37        | lead-contact-visibility-detail       |                               | 10
  11            |37        | lead-email-visibility-detail         |                               | 11
  12            |37        | lead-email-visibility-list           |                               | 12
  13            |37        | lead-email-visibility-list           |                               | 13
  14            |37        | lead-bulk-assign                     |                               | 14
  15            |37        | lead-send-sms-filter                 |                               | 15
  16            |37        | lead-advance-filter                  |                               | 16
  17            |37        | lead-advance-filter                  |                               | 17
  19            |37        | lead-change-stage                    |                               | 18
----------------+----------+--------------------------------------+-------------------------------++-------------------------------+

table role and role_permission are interlink
keep the user of superadmin  role column blank
and get the whole menu from menu table and not check in permission table
and in every condition where we check permission pass true;
there will be two option either iterate whole and and then check the menu of particular user permission
second one directly iterate that particular menu option of user

table
  role_permission
      role_permission_id


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------+--------+--------+--------+------------+-------+------------------------
| module_id | route_name      | salt                | addDate| addBy        |       
+-------+--------+--------+--------+------------+-------+------------------------
|     1     | financialList   | create-finance      | Active | 2023-01-02   |
|     1     | financialList   | create-finance      | Active | 2023-01-02   |
|     1     | financialList   | create-finance      | Active | 2023-01-02   |
|     1     | financialList   | create-finance      | Active | 2023-01-02   |
+-------+--------+--------+--------+------------+-------+------------------------





use case for role and permission issue
-----------------------------------------
ek module entry ka ui bnaega
phir ek table menu ka bnaega
phir role table
then permission table


format of table should follow
edu_    prefix
submenu 
with all small and underscore to users


edu_account_receipt_detail
edu_users
edu_role
edu_academi_course
edu_academi_academic_year



---------------format of menu response------------------------

[
  {
    "label":"menu.master_setting ",
    "name":"General",
    "url":"null",
    "icon":"fa fa-star",
    "children":[
      {
        "label":"menu.master_setting.account ",
        "name":"Account",
        "url":"",
        "icon":"",
        "children":[
          {
                "label":"menu.master_setting.account.receipt",
                "name":"Receipt",
                "url":"receiptList",
                "icon":"",
                "children":[]
          },
          {
               "label":"menu.master_setting.account.account_group",
                "name":"Receipt",
                "url":"receiptList",
                "icon":"",
                "children":[]
          },
          {
                "label":"menu.master_setting.account.account_group",
                "name":"Receipt",
                "url":"receiptList",
                "icon":"",
                "children":[]
          }
        ]
      }
    ]
  },
  {
     "label":"menu.general ",
     "name":"General",
     "url":"null",
     "icon":"fa fa-star",
     "children":[
         {
            "label":"menu.general.dashboard ",
            "name":"Account",
            "url":"",
            "icon":""
         }
     ]
  }
]

--------------------------------pending work-----------------------------------------------------------------------
    
UI presentation of permission to user
add
edit
delete
list

two type i thinking
one same as menu tree type
secound show all url with label of their parent

----------------------------------------------folder structure---------------------------------------------------------
routes of page
erp.educationbook.in/master_setting/account/receipt/show
erp.educationbook.in/account/receipt/show
general 
    dashboard
master_setting
    account
    academic
    lead
account
    receipt
    ledger
user
    user
    role
    menu
    permission
lead
    lead
    report

academic
    student
    fee_receipt
    common_receipt


    routelist
 financeList                |
 academicList               |
 branchList                 |
 courseList                 |
 rollList                   |
 feePlanList                |
 uidList                    |
 batchList                  |
 groupList                  |
 ledgerList                 |
 admissionList              |
 feeReceipt                 |
 enquireList                |
 counsellorList             |
 userList                   |
 roleList                   |
 pageList                   |
 dashboard                  |
 dummy-dashboard            |
 commonReceipt              |
 leadStageList              |
 applicationTypeList        |
 documentList               |
 discountList               |
 coursePackageList          |
 accountReceiptList         |
 batchTypeList              |
 uploadEnquire              |
 downloadEnquire            |
 sendEnquireSms             |
 batchList                  |
 apiList                    |
 smsTemplateList            |
 scheduleTemplateList       |
 scheduleCampaignList       |
 defaultNumberList          |
 imageList                  |
 registrationList           |
 leadFeedbackTypeList       |
 registrationExamDateList   |
 registrationExamCenterList |
 duplicateList              |
 uploadBulkAssign           |
 changeAssign               |
 removeAssign               |
 changeCounselor            |
 changeStage                |
 followupReport             |
 reconcilList               |
 taskList                   |



   1 menu.general          |General
   2 menu.master_setting   |Master Setting
   3 menu.student          |student
   4 menu.users            |Users
   5 menu.lead             |Lead
   6 menu.account          |Account


   2   |  menu.master_setting.account
   2   |  menu.master_setting.academic
   2   |  menu.master_setting.lead

    2   |menu.master_setting.account.receipt                                   |2 
    2   |menu.master_setting.account.account_group                             |3     
    2   |menu.master_setting.account.account_ledger                            |4       
    2   |menu.master_setting.academic.course                                   |5
    2   |menu.master_setting.academic.package                                  |6 
    2   |menu.master_setting.academic.discount                                 |7 
    2   |menu.master_setting.academic.finance                                  |8 
    2   |menu.master_setting.academic.branch                                   |9 
    2   |menu.master_setting.academic.course                                   |12 
    2   |menu.master_setting.academic.rollno                                   |14 
    2   |menu.master_setting.academic.uid                                      |15
    2   |menu.master_setting.academic.academic_year                            |16     
    2   |menu.master_setting.academic.application_type                         |17         
    2   |menu.master_setting.academic.batch_type                               |18     









*****************************************************
CRMS template
*****************************************************

===============================
data visibility
    self
    team
    all


every moduel should follow a common pattern
save
::::::::::::::::::::::::::::::::::::URGENT PENDING WORK:::::TODO::::::::::::::::::::::::::::::::::::::::
JO BHI MSG / WHATSAPP SEND HO RHE HE ENQUIRE DETAIL SE USKA RESPONSE SHOW KRNA HE SUCCESS HE YE TEMPLATE NOT CORRECT LIKE 
THAT
 

::::::::::::::::::::::::::::::::::::::::::::TASK:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
edu_task
edu_task_activity

Task field UI
    task name
    task assigned to
    category of task -> Email,followup,Get started,Phone call, 
    due date 
    status -> Not started,In progress,closed,open
    description
    addby
    addDate
    leadId


edu_task schema
task_id
task_name
task_assigned
category_task
due_date
due_time
status
description
addBy
addDate
lead_id



::::::::::::::::::::::::::::::::::::::::::
two type cheque
post dated cheque ------upcoming cheque in future date
current cheque  ---- bank reconcil 

show krna k liye


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2023-02-20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
action button dropdown not working properly CORRECT it
JO BHI MSG / WHATSAPP SEND HO RHE HE ENQUIRE DETAIL SE USKA RESPONSE SHOW KRNA HE SUCCESS HE YE TEMPLATE NOT CORRECT LIKE 
THAT