🧠 Semantic Code Intelligence - Advanced

تقييم شامل مع Call Graph, Dependency Graph, Business Rules, Impact Analysis

📁 /home/b03sme1dfsz2/public_html/vp

12% التقييم: F

5 مشكلة تحتاج إلى تحسين

💡 التوصيات:

  • 💡 تقسيم الـ Controllers الكبيرة (3)
  • 💡 إضافة علاقات للـ Models (1)
  • 💡 إضافة Policies (51)
  • 💡 إصلاح N+1 Queries (2)
  • 💡 Controllers بدون ميثودات (6)
🎮
55
Controllers
📦
14
Models
🛣️
56
Routes
📞
98
Call Graph
🔗
217
Dependencies
📋
140
Business Rules
3.3
📊 Avg Methods/Controller
3
⚠️ Complex Controllers
2.7
🔗 Avg Relations/Model
51
🔐 Security Issues
2
⚡ Performance Issues

📞 Call Graph 98

FromToType
... و 78 استدعاء آخر

📋 Business Rules 140

TypeClassMethod
business_rule
business_rule DatabaseSeeder run
business_rule DatabaseSeeder run
business_rule DatabaseSeeder run
business_rule MigrateLegacyRolesToRbac handle
business_rule
business_rule WorkflowEngine execute
business_rule WorkflowEngine execute
business_rule WorkflowEngine validatePermission
business_rule WorkflowEngine validatePermission
business_rule WorkflowEngine validatePermission
business_rule WorkflowEngine validatePermission
business_rule ParkingType calculatePrice
business_rule ParkingType calculatePrice
business_rule User updateMembershipTier
business_rule PlanCommentPolicy view
business_rule PlanCommentPolicy view
business_rule PlanCommentPolicy create
business_rule PlanCommentPolicy delete
business_rule PlanVotePolicy vote
... و 120 قاعدة أخرى

🎯 Impact Analysis Risk: 0

📁 Affected Files

  • لا توجد ملفات متأثرة

📌 Affected Methods

  • لا توجد ميثودات متأثرة

🔐 Security Issues 51

⚡ Performance Issues 2

🛣️ Routes 56

MethodURIController
GET /locations LocationController
POST /login App\Http\Controllers\API\AuthController
POST /logout App\Http\Controllers\API\AuthController
GET /user App\Http\Controllers\API\AuthController
GET register RegisteredUserController
POST register RegisteredUserController
GET login AuthenticatedSessionController
POST login AuthenticatedSessionController
POST logout AuthenticatedSessionController
GET / HomeController
GET /locations LocationController
GET /locations/{id} LocationController
GET /map MapController
GET /dashboard DashboardController
GET /payment PaymentController
POST /payment/process PaymentController
GET /payment/cash/{ticketId} PaymentController
GET /parking ParkingController
GET /parking/book/{spotId} ParkingController
POST /parking/book/{spotId} ParkingController
GET /guest/booking GuestBookingController
POST /guest/booking/calculate GuestBookingController
POST /guest/booking GuestBookingController
GET /guest/confirmation/{id} GuestBookingController
GET /scan-plate AttendantScanController
POST /search-ticket AttendantScanController
POST /open-gate AttendantScanController
GET / LoyaltyController
POST /redeem LoyaltyController
GET / ReferralController
... و 26 مسار آخر

🎮 Controllers 55

ControllerMethodsComplexityFile
ParkingController 3 ✅ جيد ParkingController.php
DashboardController 1 ✅ جيد DashboardController.php
QRScannerController 3 ✅ جيد QRScannerController.php
LocationController 2 ✅ جيد LocationController.php
PaymentController 3 ✅ جيد PaymentController.php
UserController 3 ✅ جيد UserController.php
AdminController 23 ⚠️ مرتفع AdminController.php
AdminPagesController 4 ✅ جيد AdminPagesController.php
UserManagementController 3 ✅ جيد UserManagementController.php
DebugController 1 ✅ جيد DebugController.php
AdminLogController 1 ✅ جيد AdminLogController.php
ImportOldPlansController 6 ⚠️ متوسط ImportOldPlansController.php
PermissionController 1 ✅ جيد PermissionController.php
RoleController 6 ⚠️ متوسط RoleController.php
PageEditorController 3 ✅ جيد PageEditorController.php
NotificationController 4 ✅ جيد NotificationController.php
CommitteeController 13 ⚠️ مرتفع CommitteeController.php
GuestBookingController 4 ✅ جيد GuestBookingController.php
HomeController 1 ✅ جيد HomeController.php
CommitteePrivateNoteController 3 ✅ جيد CommitteePrivateNoteController.php
ReviewController 1 ✅ جيد ReviewController.php
PlanFileController 2 ✅ جيد PlanFileController.php
DebugController 1 ✅ جيد DebugController.php
AttendantController 2 ✅ جيد AttendantController.php
QRController 2 ✅ جيد QRController.php
ReferralController 2 ✅ جيد ReferralController.php
PlanPdfController 1 ✅ جيد PlanPdfController.php
RatingController 0 ✅ جيد RatingController.php
PlanController 22 ⚠️ مرتفع PlanController.php
MapController 1 ✅ جيد MapController.php
PermissionController 1 ✅ جيد PermissionController.php
RoleController 6 ⚠️ متوسط RoleController.php
HealthController 1 ✅ جيد HealthController.php
SupervisorNoteController 3 ✅ جيد SupervisorNoteController.php
StudyController 7 ⚠️ متوسط StudyController.php
TicketController 10 ⚠️ متوسط TicketController.php
ResetPasswordController 2 ✅ جيد ResetPasswordController.php
AuthenticatedSessionController 3 ✅ جيد AuthenticatedSessionController.php
VerificationController 0 ✅ جيد VerificationController.php
RegisteredUserController 2 ✅ جيد RegisteredUserController.php
ConfirmPasswordController 0 ✅ جيد ConfirmPasswordController.php
ForgotPasswordController 2 ✅ جيد ForgotPasswordController.php
LoginController 1 ✅ جيد LoginController.php
RegisterController 2 ✅ جيد RegisterController.php
LocationController 3 ✅ جيد LocationController.php
PaymentController 0 ✅ جيد PaymentController.php
TestController 1 ✅ جيد TestController.php
RatingController 0 ✅ جيد RatingController.php
TicketController 4 ✅ جيد TicketController.php
AuthController 3 ✅ جيد AuthController.php
ApiController 1 ✅ جيد ApiController.php
AuthController 3 ✅ جيد AuthController.php
LoyaltyController 2 ✅ جيد LoyaltyController.php
AttendantScanController 3 ✅ جيد AttendantScanController.php
Controller 0 ✅ جيد Controller.php

📦 Models 14

ModelTableRelations
Referral referrals belongsTo: User
AuditLog auditlogs belongsTo: Ticket belongsTo: User belongsTo: Company belongsTo: Location
ParkingType parkingtypes hasMany: Ticket
LoyaltyPoint loyaltypoints belongsTo: User belongsTo: Ticket
Vehicle vehicles belongsTo: User hasMany: Ticket
Payment payments belongsTo: Ticket belongsTo: User
User users belongsTo: Location belongsTo: Location hasMany: Ticket hasMany: Payment hasMany: Rating belongsTo: MembershipTier hasMany: LoyaltyPoint hasMany: Referral belongsTo: User
ParkingSpot parkingspots belongsTo: Location
MembershipTier membershiptiers hasMany: User hasMany: Ticket
Ticket tickets belongsTo: Location belongsTo: ParkingSpot belongsTo: User belongsTo: User belongsTo: Vehicle hasOne: Payment hasOne: Rating
ActivityLog activitylogs لا توجد علاقات
Rating ratings belongsTo: Ticket belongsTo: User belongsTo: User
Location locations belongsTo: User hasMany: ParkingSpot hasMany: Ticket
Notification notifications belongsTo: User

📄 JSON Report

{
    "project": {
        "name": "vp",
        "framework": "laravel",
        "path": "\/home\/b03sme1dfsz2\/public_html\/vp"
    },
    "metrics": {
        "controllers": {
            "total": 55,
            "with_high_complexity": 3,
            "total_methods": 182,
            "average_methods": 3.3
        },
        "models": {
            "total": 14,
            "with_relations": 13,
            "total_relations": 38,
            "average_relations": 2.7
        },
        "routes": {
            "total": 56
        },
        "call_graph": {
            "total_calls": 98
        },
        "dependencies": {
            "total_nodes": 73,
            "total_edges": 217
        },
        "business_rules": {
            "total": 140
        }
    },
    "security": {
        "issues": [
            {
                "type": "missing_policy",
                "controller": "ParkingController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "DashboardController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "QRScannerController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "LocationController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PaymentController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "UserController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AdminController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AdminPagesController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "UserManagementController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "DebugController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AdminLogController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ImportOldPlansController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PermissionController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "RoleController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PageEditorController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "NotificationController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "CommitteeController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "GuestBookingController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "HomeController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ReviewController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PlanFileController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "DebugController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AttendantController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "QRController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ReferralController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PlanPdfController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "RatingController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "MapController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PermissionController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "RoleController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "HealthController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "SupervisorNoteController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "StudyController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ResetPasswordController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AuthenticatedSessionController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "VerificationController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "RegisteredUserController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ConfirmPasswordController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ForgotPasswordController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "LoginController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "RegisterController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "LocationController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "PaymentController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "TestController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "RatingController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AuthController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "ApiController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AuthController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "LoyaltyController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "AttendantScanController",
                "severity": "medium"
            },
            {
                "type": "missing_policy",
                "controller": "Controller",
                "severity": "medium"
            }
        ],
        "total": 51
    },
    "performance": {
        "issues": [
            {
                "type": "possible_n+1",
                "controller": "PlanController",
                "severity": "high"
            },
            {
                "type": "possible_n+1",
                "controller": "TicketController",
                "severity": "high"
            }
        ],
        "total": 2
    },
    "details": {
        "controllers": [
            {
                "name": "ParkingController",
                "methods": 3,
                "file": "ParkingController.php"
            },
            {
                "name": "DashboardController",
                "methods": 1,
                "file": "DashboardController.php"
            },
            {
                "name": "QRScannerController",
                "methods": 3,
                "file": "QRScannerController.php"
            },
            {
                "name": "LocationController",
                "methods": 2,
                "file": "LocationController.php"
            },
            {
                "name": "PaymentController",
                "methods": 3,
                "file": "PaymentController.php"
            },
            {
                "name": "UserController",
                "methods": 3,
                "file": "UserController.php"
            },
            {
                "name": "AdminController",
                "methods": 23,
                "file": "AdminController.php"
            },
            {
                "name": "AdminPagesController",
                "methods": 4,
                "file": "AdminPagesController.php"
            },
            {
                "name": "UserManagementController",
                "methods": 3,
                "file": "UserManagementController.php"
            },
            {
                "name": "DebugController",
                "methods": 1,
                "file": "DebugController.php"
            },
            {
                "name": "AdminLogController",
                "methods": 1,
                "file": "AdminLogController.php"
            },
            {
                "name": "ImportOldPlansController",
                "methods": 6,
                "file": "ImportOldPlansController.php"
            },
            {
                "name": "PermissionController",
                "methods": 1,
                "file": "PermissionController.php"
            },
            {
                "name": "RoleController",
                "methods": 6,
                "file": "RoleController.php"
            },
            {
                "name": "PageEditorController",
                "methods": 3,
                "file": "PageEditorController.php"
            },
            {
                "name": "NotificationController",
                "methods": 4,
                "file": "NotificationController.php"
            },
            {
                "name": "CommitteeController",
                "methods": 13,
                "file": "CommitteeController.php"
            },
            {
                "name": "GuestBookingController",
                "methods": 4,
                "file": "GuestBookingController.php"
            },
            {
                "name": "HomeController",
                "methods": 1,
                "file": "HomeController.php"
            },
            {
                "name": "CommitteePrivateNoteController",
                "methods": 3,
                "file": "CommitteePrivateNoteController.php"
            },
            {
                "name": "ReviewController",
                "methods": 1,
                "file": "ReviewController.php"
            },
            {
                "name": "PlanFileController",
                "methods": 2,
                "file": "PlanFileController.php"
            },
            {
                "name": "DebugController",
                "methods": 1,
                "file": "DebugController.php"
            },
            {
                "name": "AttendantController",
                "methods": 2,
                "file": "AttendantController.php"
            },
            {
                "name": "QRController",
                "methods": 2,
                "file": "QRController.php"
            },
            {
                "name": "ReferralController",
                "methods": 2,
                "file": "ReferralController.php"
            },
            {
                "name": "PlanPdfController",
                "methods": 1,
                "file": "PlanPdfController.php"
            },
            {
                "name": "RatingController",
                "methods": 0,
                "file": "RatingController.php"
            },
            {
                "name": "PlanController",
                "methods": 22,
                "file": "PlanController.php"
            },
            {
                "name": "MapController",
                "methods": 1,
                "file": "MapController.php"
            },
            {
                "name": "PermissionController",
                "methods": 1,
                "file": "PermissionController.php"
            },
            {
                "name": "RoleController",
                "methods": 6,
                "file": "RoleController.php"
            },
            {
                "name": "HealthController",
                "methods": 1,
                "file": "HealthController.php"
            },
            {
                "name": "SupervisorNoteController",
                "methods": 3,
                "file": "SupervisorNoteController.php"
            },
            {
                "name": "StudyController",
                "methods": 7,
                "file": "StudyController.php"
            },
            {
                "name": "TicketController",
                "methods": 10,
                "file": "TicketController.php"
            },
            {
                "name": "ResetPasswordController",
                "methods": 2,
                "file": "ResetPasswordController.php"
            },
            {
                "name": "AuthenticatedSessionController",
                "methods": 3,
                "file": "AuthenticatedSessionController.php"
            },
            {
                "name": "VerificationController",
                "methods": 0,
                "file": "VerificationController.php"
            },
            {
                "name": "RegisteredUserController",
                "methods": 2,
                "file": "RegisteredUserController.php"
            },
            {
                "name": "ConfirmPasswordController",
                "methods": 0,
                "file": "ConfirmPasswordController.php"
            },
            {
                "name": "ForgotPasswordController",
                "methods": 2,
                "file": "ForgotPasswordController.php"
            },
            {
                "name": "LoginController",
                "methods": 1,
                "file": "LoginController.php"
            },
            {
                "name": "RegisterController",
                "methods": 2,
                "file": "RegisterController.php"
            },
            {
                "name": "LocationController",
                "methods": 3,
                "file": "LocationController.php"
            },
            {
                "name": "PaymentController",
                "methods": 0,
                "file": "PaymentController.php"
            },
            {
                "name": "TestController",
                "methods": 1,
                "file": "TestController.php"
            },
            {
                "name": "RatingController",
                "methods": 0,
                "file": "RatingController.php"
            },
            {
                "name": "TicketController",
                "methods": 4,
                "file": "TicketController.php"
            },
            {
                "name": "AuthController",
                "methods": 3,
                "file": "AuthController.php"
            },
            {
                "name": "ApiController",
                "methods": 1,
                "file": "ApiController.php"
            },
            {
                "name": "AuthController",
                "methods": 3,
                "file": "AuthController.php"
            },
            {
                "name": "LoyaltyController",
                "methods": 2,
                "file": "LoyaltyController.php"
            },
            {
                "name": "AttendantScanController",
                "methods": 3,
                "file": "AttendantScanController.php"
            },
            {
                "name": "Controller",
                "methods": 0,
                "file": "Controller.php"
            }
        ],
        "models": [
            {
                "name": "Referral",
                "table": "referrals",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "referrer",
                        "target": "User"
                    }
                ]
            },
            {
                "name": "AuditLog",
                "table": "auditlogs",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "ticket",
                        "target": "Ticket"
                    },
                    {
                        "type": "belongsTo",
                        "method": "user",
                        "target": "User"
                    },
                    {
                        "type": "belongsTo",
                        "method": "company",
                        "target": "Company"
                    },
                    {
                        "type": "belongsTo",
                        "method": "location",
                        "target": "Location"
                    }
                ]
            },
            {
                "name": "ParkingType",
                "table": "parkingtypes",
                "relations": [
                    {
                        "type": "hasMany",
                        "method": "tickets",
                        "target": "Ticket"
                    }
                ]
            },
            {
                "name": "LoyaltyPoint",
                "table": "loyaltypoints",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "user",
                        "target": "User"
                    },
                    {
                        "type": "belongsTo",
                        "method": "ticket",
                        "target": "Ticket"
                    }
                ]
            },
            {
                "name": "Vehicle",
                "table": "vehicles",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "owner",
                        "target": "User"
                    },
                    {
                        "type": "hasMany",
                        "method": "tickets",
                        "target": "Ticket"
                    }
                ]
            },
            {
                "name": "Payment",
                "table": "payments",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "ticket",
                        "target": "Ticket"
                    },
                    {
                        "type": "belongsTo",
                        "method": "user",
                        "target": "User"
                    }
                ]
            },
            {
                "name": "User",
                "table": "users",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "managedLocation",
                        "target": "Location"
                    },
                    {
                        "type": "belongsTo",
                        "method": "assignedLocation",
                        "target": "Location"
                    },
                    {
                        "type": "hasMany",
                        "method": "tickets",
                        "target": "Ticket"
                    },
                    {
                        "type": "hasMany",
                        "method": "payments",
                        "target": "Payment"
                    },
                    {
                        "type": "hasMany",
                        "method": "ratings",
                        "target": "Rating"
                    },
                    {
                        "type": "belongsTo",
                        "method": "membershipTier",
                        "target": "MembershipTier"
                    },
                    {
                        "type": "hasMany",
                        "method": "loyaltyPoints",
                        "target": "LoyaltyPoint"
                    },
                    {
                        "type": "hasMany",
                        "method": "referrals",
                        "target": "Referral"
                    },
                    {
                        "type": "belongsTo",
                        "method": "referredBy",
                        "target": "User"
                    }
                ]
            },
            {
                "name": "ParkingSpot",
                "table": "parkingspots",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "location",
                        "target": "Location"
                    }
                ]
            },
            {
                "name": "MembershipTier",
                "table": "membershiptiers",
                "relations": [
                    {
                        "type": "hasMany",
                        "method": "users",
                        "target": "User"
                    },
                    {
                        "type": "hasMany",
                        "method": "tickets",
                        "target": "Ticket"
                    }
                ]
            },
            {
                "name": "Ticket",
                "table": "tickets",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "location",
                        "target": "Location"
                    },
                    {
                        "type": "belongsTo",
                        "method": "parkingSpot",
                        "target": "ParkingSpot"
                    },
                    {
                        "type": "belongsTo",
                        "method": "attendant",
                        "target": "User"
                    },
                    {
                        "type": "belongsTo",
                        "method": "client",
                        "target": "User"
                    },
                    {
                        "type": "belongsTo",
                        "method": "vehicle",
                        "target": "Vehicle"
                    },
                    {
                        "type": "hasOne",
                        "method": "payment",
                        "target": "Payment"
                    },
                    {
                        "type": "hasOne",
                        "method": "rating",
                        "target": "Rating"
                    }
                ]
            },
            {
                "name": "ActivityLog",
                "table": "activitylogs",
                "relations": []
            },
            {
                "name": "Rating",
                "table": "ratings",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "ticket",
                        "target": "Ticket"
                    },
                    {
                        "type": "belongsTo",
                        "method": "user",
                        "target": "User"
                    },
                    {
                        "type": "belongsTo",
                        "method": "attendant",
                        "target": "User"
                    }
                ]
            },
            {
                "name": "Location",
                "table": "locations",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "manager",
                        "target": "User"
                    },
                    {
                        "type": "hasMany",
                        "method": "parkingSpots",
                        "target": "ParkingSpot"
                    },
                    {
                        "type": "hasMany",
                        "method": "tickets",
                        "target": "Ticket"
                    }
                ]
            },
            {
                "name": "Notification",
                "table": "notifications",
                "relations": [
                    {
                        "type": "belongsTo",
                        "method": "user",
                        "target": "User"
                    }
                ]
            }
        ],
        "routes": [
            {
                "method": "get",
                "uri": "\/locations",
                "controller": "LocationController"
            },
            {
                "method": "post",
                "uri": "\/login",
                "controller": "App\\Http\\Controllers\\API\\AuthController"
            },
            {
                "method": "post",
                "uri": "\/logout",
                "controller": "App\\Http\\Controllers\\API\\AuthController"
            },
            {
                "method": "get",
                "uri": "\/user",
                "controller": "App\\Http\\Controllers\\API\\AuthController"
            },
            {
                "method": "get",
                "uri": "register",
                "controller": "RegisteredUserController"
            },
            {
                "method": "post",
                "uri": "register",
                "controller": "RegisteredUserController"
            },
            {
                "method": "get",
                "uri": "login",
                "controller": "AuthenticatedSessionController"
            },
            {
                "method": "post",
                "uri": "login",
                "controller": "AuthenticatedSessionController"
            },
            {
                "method": "post",
                "uri": "logout",
                "controller": "AuthenticatedSessionController"
            },
            {
                "method": "get",
                "uri": "\/",
                "controller": "HomeController"
            },
            {
                "method": "get",
                "uri": "\/locations",
                "controller": "LocationController"
            },
            {
                "method": "get",
                "uri": "\/locations\/{id}",
                "controller": "LocationController"
            },
            {
                "method": "get",
                "uri": "\/map",
                "controller": "MapController"
            },
            {
                "method": "get",
                "uri": "\/dashboard",
                "controller": "DashboardController"
            },
            {
                "method": "get",
                "uri": "\/payment",
                "controller": "PaymentController"
            },
            {
                "method": "post",
                "uri": "\/payment\/process",
                "controller": "PaymentController"
            },
            {
                "method": "get",
                "uri": "\/payment\/cash\/{ticketId}",
                "controller": "PaymentController"
            },
            {
                "method": "get",
                "uri": "\/parking",
                "controller": "ParkingController"
            },
            {
                "method": "get",
                "uri": "\/parking\/book\/{spotId}",
                "controller": "ParkingController"
            },
            {
                "method": "post",
                "uri": "\/parking\/book\/{spotId}",
                "controller": "ParkingController"
            },
            {
                "method": "get",
                "uri": "\/guest\/booking",
                "controller": "GuestBookingController"
            },
            {
                "method": "post",
                "uri": "\/guest\/booking\/calculate",
                "controller": "GuestBookingController"
            },
            {
                "method": "post",
                "uri": "\/guest\/booking",
                "controller": "GuestBookingController"
            },
            {
                "method": "get",
                "uri": "\/guest\/confirmation\/{id}",
                "controller": "GuestBookingController"
            },
            {
                "method": "get",
                "uri": "\/scan-plate",
                "controller": "AttendantScanController"
            },
            {
                "method": "post",
                "uri": "\/search-ticket",
                "controller": "AttendantScanController"
            },
            {
                "method": "post",
                "uri": "\/open-gate",
                "controller": "AttendantScanController"
            },
            {
                "method": "get",
                "uri": "\/",
                "controller": "LoyaltyController"
            },
            {
                "method": "post",
                "uri": "\/redeem",
                "controller": "LoyaltyController"
            },
            {
                "method": "get",
                "uri": "\/",
                "controller": "ReferralController"
            }
        ],
        "call_graph": {
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php": {
                "AddAssignedSupervisorIdToPlansTable": {
                    "up": [
                        {
                            "type": "static_call",
                            "target": "Schema::table",
                            "line": 11,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "after",
                            "line": 12,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "nullable",
                            "line": 12,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "unsignedBigInteger",
                            "line": 12,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php"
                        }
                    ],
                    "down": [
                        {
                            "type": "static_call",
                            "target": "Schema::table",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "dropColumn",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_15_222002_add_assigned_supervisor_id_to_plans_table.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php": {
                "CreateRolesTable": {
                    "up": [
                        {
                            "type": "static_call",
                            "target": "Schema::create",
                            "line": 11,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "id",
                            "line": 12,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "unique",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "string",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "timestamps",
                            "line": 14,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php"
                        }
                    ],
                    "down": [
                        {
                            "type": "static_call",
                            "target": "Schema::dropIfExists",
                            "line": 20,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/20251015_000002_create_roles_table.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php": {
                "CreateRoleUserTable": {
                    "up": [
                        {
                            "type": "static_call",
                            "target": "Schema::create",
                            "line": 11,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "id",
                            "line": 12,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "cascadeOnDelete",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "constrained",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "foreignId",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "cascadeOnDelete",
                            "line": 14,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "constrained",
                            "line": 14,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "foreignId",
                            "line": 14,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "unique",
                            "line": 15,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        },
                        {
                            "type": "method_call",
                            "target": "timestamps",
                            "line": 16,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        }
                    ],
                    "down": [
                        {
                            "type": "static_call",
                            "target": "Schema::dropIfExists",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/migrations\/2025_10_14_212448_create_role_user_table.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php": {
                "SampleUsersSeeder": {
                    "run": [
                        {
                            "type": "static_call",
                            "target": "Department::firstOrCreate",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Role::firstOrCreate",
                            "line": 25,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::updateOrCreate",
                            "line": 31,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "syncWithoutDetaching",
                            "line": 39,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 39,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "first",
                            "line": 39,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Role::where",
                            "line": 39,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::updateOrCreate",
                            "line": 45,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 49,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "syncWithoutDetaching",
                            "line": 53,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 53,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "first",
                            "line": 53,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Role::where",
                            "line": 53,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Study::updateOrCreate",
                            "line": 56,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Plan::updateOrCreate",
                            "line": 65,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/SampleUsersSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php": {
                "DemoDataSeeder": {
                    "run": [
                        {
                            "type": "method_call",
                            "target": "updateOrInsert",
                            "line": 16,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 16,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 20,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 21,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 25,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "array_rand",
                            "line": 34,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "subHours",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "subDays",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Carbon::now",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "insert",
                            "line": 37,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 37,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "str_pad",
                            "line": 38,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "md5",
                            "line": 39,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 41,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 42,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 43,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 44,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "addHours",
                            "line": 47,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "copy",
                            "line": 47,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 47,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 49,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 57,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 58,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "subHours",
                            "line": 59,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "subDays",
                            "line": 59,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Carbon::now",
                            "line": 59,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 59,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 59,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "insert",
                            "line": 61,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 61,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 63,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "array_rand",
                            "line": 67,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "strtoupper",
                            "line": 69,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "uniqid",
                            "line": 69,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 72,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "insert",
                            "line": 86,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 86,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 88,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 89,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 90,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "array_rand",
                            "line": 91,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "subDays",
                            "line": 93,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Carbon::now",
                            "line": 93,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 93,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 94,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "insert",
                            "line": 102,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 102,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 103,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 104,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "array_rand",
                            "line": 105,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "subDays",
                            "line": 107,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Carbon::now",
                            "line": 107,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "rand",
                            "line": 107,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 111,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 112,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "count",
                            "line": 112,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 112,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 113,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "count",
                            "line": 113,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 113,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 114,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "count",
                            "line": 114,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 114,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DemoDataSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/RolesTableSeeder.php": {
                "RolesTableSeeder": {
                    "run": [
                        {
                            "type": "method_call",
                            "target": "updateOrInsert",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/RolesTableSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/RolesTableSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php": {
                "DatabaseSeeder": {
                    "run": [
                        {
                            "type": "static_call",
                            "target": "DB::statement",
                            "line": 14,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "truncate",
                            "line": 15,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 15,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::statement",
                            "line": 16,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "update",
                            "line": 21,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "where",
                            "line": 21,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 21,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "update",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "where",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "update",
                            "line": 23,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "where",
                            "line": 23,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 23,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "floor",
                            "line": 34,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "str_pad",
                            "line": 37,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 53,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 54,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "floor",
                            "line": 63,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "str_pad",
                            "line": 66,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 82,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 83,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "floor",
                            "line": 92,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "str_pad",
                            "line": 95,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 111,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 112,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "array_chunk",
                            "line": 117,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "insert",
                            "line": 118,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 118,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 121,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 122,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "count",
                            "line": 122,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 122,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 123,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "count",
                            "line": 123,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 123,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 124,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "count",
                            "line": 124,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 124,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php": {
                "PlanRelationSeeder": {
                    "run": [
                        {
                            "type": "static_call",
                            "target": "Department::first",
                            "line": 17,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Department::create",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::firstOrCreate",
                            "line": 27,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 31,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "syncWithoutDetaching",
                            "line": 37,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 37,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::firstOrCreate",
                            "line": 42,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 46,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "syncWithoutDetaching",
                            "line": 51,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 51,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Study::create",
                            "line": 54,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Plan::create",
                            "line": 62,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/PlanRelationSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/StudySeeder.php": {
                "StudySeeder": {
                    "run": [
                        {
                            "type": "static_call",
                            "target": "Department::first",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/StudySeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Study::firstOrCreate",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/StudySeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Study::firstOrCreate",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/StudySeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/AdminUserSeeder.php": {
                "AdminUserSeeder": {
                    "run": [
                        {
                            "type": "method_call",
                            "target": "insert",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/AdminUserSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::table",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/AdminUserSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 16,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/AdminUserSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/AdminUserSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/AdminUserSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/UsersTableSeeder.php": {
                "UsersTableSeeder": {
                    "run": [
                        {
                            "type": "function_call",
                            "target": "bcrypt",
                            "line": 17,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/UsersTableSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "bcrypt",
                            "line": 23,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/UsersTableSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "bcrypt",
                            "line": 29,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/UsersTableSeeder.php"
                        },
                        {
                            "type": "function_call",
                            "target": "bcrypt",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/UsersTableSeeder.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::updateOrCreate",
                            "line": 41,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/UsersTableSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/RolesSeeder.php": {
                "RolesSeeder": {
                    "run": [
                        {
                            "type": "static_call",
                            "target": "Role::firstOrCreate",
                            "line": 25,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/RolesSeeder.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php": {
                "UserFactory": {
                    "definition": [
                        {
                            "type": "method_call",
                            "target": "name",
                            "line": 27,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "function_call",
                            "target": "fake",
                            "line": 27,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "method_call",
                            "target": "safeEmail",
                            "line": 28,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "method_call",
                            "target": "unique",
                            "line": 28,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "function_call",
                            "target": "fake",
                            "line": 28,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 29,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Hash::make",
                            "line": 30,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Str::random",
                            "line": 31,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        }
                    ],
                    "unverified": [
                        {
                            "type": "method_call",
                            "target": "state",
                            "line": 40,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/factories\/UserFactory.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php": {
                "MigrateLegacyRolesToRbac": {
                    "handle": [
                        {
                            "type": "method_call",
                            "target": "option",
                            "line": 17,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "warn",
                            "line": 21,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "get",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::whereNotNull",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "function_call",
                            "target": "trim",
                            "line": 28,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Role::firstOrCreate",
                            "line": 35,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "exists",
                            "line": 38,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "where",
                            "line": 38,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 38,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "attach",
                            "line": 43,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 43,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "line",
                            "line": 47,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 50,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 51,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php": {
                "MigrateLegacyUserRoles": {
                    "handle": [
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 17,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "get",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "where",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "static_call",
                            "target": "User::whereNotNull",
                            "line": 19,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "isEmpty",
                            "line": 23,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::beginTransaction",
                            "line": 28,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "function_call",
                            "target": "trim",
                            "line": 32,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "first",
                            "line": 34,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Role::where",
                            "line": 34,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "warn",
                            "line": 37,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "syncWithoutDetaching",
                            "line": 41,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "roles",
                            "line": 41,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "line",
                            "line": 43,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::commit",
                            "line": 46,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "info",
                            "line": 47,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::rollBack",
                            "line": 51,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "error",
                            "line": 52,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        },
                        {
                            "type": "method_call",
                            "target": "getMessage",
                            "line": 52,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyUserRoles.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php": {
                "StateMachine": {
                    "__construct": [],
                    "canTransition": [
                        {
                            "type": "function_call",
                            "target": "in_array",
                            "line": 34,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        }
                    ],
                    "getNextStates": [],
                    "getFirstNextState": [
                        {
                            "type": "method_call",
                            "target": "getNextStates",
                            "line": 44,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        }
                    ],
                    "getAllowedTransitions": [],
                    "canTransitionTo": [
                        {
                            "type": "method_call",
                            "target": "canTransition",
                            "line": 55,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        }
                    ],
                    "transition": [
                        {
                            "type": "method_call",
                            "target": "canTransition",
                            "line": 60,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Log::warning",
                            "line": 61,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::beginTransaction",
                            "line": 70,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "method_call",
                            "target": "save",
                            "line": 75,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "function_call",
                            "target": "now",
                            "line": 88,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "method_call",
                            "target": "save",
                            "line": 89,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "method_call",
                            "target": "save",
                            "line": 100,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::commit",
                            "line": 103,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Log::info",
                            "line": 105,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "static_call",
                            "target": "DB::rollBack",
                            "line": 114,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Log::error",
                            "line": 115,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        },
                        {
                            "type": "method_call",
                            "target": "getMessage",
                            "line": 119,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/StateMachine.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php": {
                "WorkflowEngine": {
                    "__construct": [],
                    "execute": [
                        {
                            "type": "method_call",
                            "target": "validatePermission",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php"
                        },
                        {
                            "type": "method_call",
                            "target": "canTransition",
                            "line": 36,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php"
                        },
                        {
                            "type": "method_call",
                            "target": "transition",
                            "line": 41,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php"
                        }
                    ],
                    "validatePermission": [
                        {
                            "type": "function_call",
                            "target": "in_array",
                            "line": 69,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php"
                        },
                        {
                            "type": "function_call",
                            "target": "in_array",
                            "line": 81,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/EventServiceProvider.php": {
                "EventServiceProvider": {
                    "boot": [
                        {
                            "type": "static_call",
                            "target": "parent::boot",
                            "line": 13,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/EventServiceProvider.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php": {
                "RouteServiceProvider": {
                    "boot": [
                        {
                            "type": "static_call",
                            "target": "RateLimiter::for",
                            "line": 17,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "by",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Limit::perMinute",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "user",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "ip",
                            "line": 18,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "routes",
                            "line": 21,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "group",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "prefix",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Route::middleware",
                            "line": 22,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "function_call",
                            "target": "base_path",
                            "line": 24,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "method_call",
                            "target": "group",
                            "line": 26,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "static_call",
                            "target": "Route::middleware",
                            "line": 26,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        },
                        {
                            "type": "function_call",
                            "target": "base_path",
                            "line": 27,
                            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/RouteServiceProvider.php"
                        }
                    ]
                }
            },
            "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Providers\/AppServiceProvider.php": {
                "AppServiceProvider": {
                    "register": [],
                    "boot": []
                }
            }
        },
        "dependencies": {
            "nodes": [
                {
                    "id": "ParkingController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/ParkingController.php"
                },
                {
                    "id": "DashboardController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/DashboardController.php"
                },
                {
                    "id": "QRScannerController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/QRScannerController.php"
                },
                {
                    "id": "LocationController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/LocationController.php"
                },
                {
                    "id": "PaymentController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/PaymentController.php"
                },
                {
                    "id": "UserController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/UserController.php"
                },
                {
                    "id": "AdminController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/AdminController.php"
                },
                {
                    "id": "edit_users.blade",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/edit_users.blade.php"
                },
                {
                    "id": "AdminPagesController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/AdminPagesController.php"
                },
                {
                    "id": "users.blade",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/users.blade.php"
                },
                {
                    "id": "UserManagementController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/UserManagementController.php"
                },
                {
                    "id": "DebugController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/DebugController.php"
                },
                {
                    "id": "AdminLogController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/AdminLogController.php"
                },
                {
                    "id": "ImportOldPlansController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/ImportOldPlansController.php"
                },
                {
                    "id": "PermissionController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/PermissionController.php"
                },
                {
                    "id": "RoleController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/RoleController.php"
                },
                {
                    "id": "index.blade",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/index.blade.php"
                },
                {
                    "id": "PageEditorController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Admin\/PageEditorController.php"
                },
                {
                    "id": "NotificationController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/NotificationController.php"
                },
                {
                    "id": "CommitteeController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/CommitteeController.php"
                },
                {
                    "id": "GuestBookingController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/GuestBookingController.php"
                },
                {
                    "id": "HomeController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/HomeController.php"
                },
                {
                    "id": "CommitteePrivateNoteController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/CommitteePrivateNoteController.php"
                },
                {
                    "id": "ReviewController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/ReviewController.php"
                },
                {
                    "id": "PlanFileController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/PlanFileController.php"
                },
                {
                    "id": "DebugController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/DebugController.php"
                },
                {
                    "id": "AttendantController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/AttendantController.php"
                },
                {
                    "id": "QRController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/QRController.php"
                },
                {
                    "id": "ReferralController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/ReferralController.php"
                },
                {
                    "id": "PlanPdfController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/PlanPdfController.php"
                },
                {
                    "id": "RatingController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/RatingController.php"
                },
                {
                    "id": "PlanController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/PlanController.php"
                },
                {
                    "id": "MapController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/MapController.php"
                },
                {
                    "id": "PermissionController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/PermissionController.php"
                },
                {
                    "id": "RoleController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/RoleController.php"
                },
                {
                    "id": "HealthController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/HealthController.php"
                },
                {
                    "id": "SupervisorNoteController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/SupervisorNoteController.php"
                },
                {
                    "id": "StudyController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/StudyController.php"
                },
                {
                    "id": "TicketController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/TicketController.php"
                },
                {
                    "id": "ResetPasswordController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/ResetPasswordController.php"
                },
                {
                    "id": "AuthenticatedSessionController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/AuthenticatedSessionController.php"
                },
                {
                    "id": "VerificationController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/VerificationController.php"
                },
                {
                    "id": "RegisteredUserController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/RegisteredUserController.php"
                },
                {
                    "id": "ConfirmPasswordController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/ConfirmPasswordController.php"
                },
                {
                    "id": "ForgotPasswordController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/ForgotPasswordController.php"
                },
                {
                    "id": "LoginController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/LoginController.php"
                },
                {
                    "id": "RegisterController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Auth\/RegisterController.php"
                },
                {
                    "id": "LocationController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/API\/LocationController.php"
                },
                {
                    "id": "PaymentController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/API\/PaymentController.php"
                },
                {
                    "id": "TestController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/API\/TestController.php"
                },
                {
                    "id": "RatingController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/API\/RatingController.php"
                },
                {
                    "id": "TicketController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/API\/TicketController.php"
                },
                {
                    "id": "AuthController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/API\/AuthController.php"
                },
                {
                    "id": "ApiController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/ApiController.php"
                },
                {
                    "id": "AuthController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/AuthController.php"
                },
                {
                    "id": "LoyaltyController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/LoyaltyController.php"
                },
                {
                    "id": "AttendantScanController",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/AttendantScanController.php"
                },
                {
                    "id": "Controller",
                    "type": "controller",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/Controller.php"
                },
                {
                    "id": "TicketWorkflowService",
                    "type": "service",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Services\/TicketWorkflowService.php"
                },
                {
                    "id": "Referral",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Referral.php"
                },
                {
                    "id": "AuditLog",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/AuditLog.php"
                },
                {
                    "id": "ParkingType",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/ParkingType.php"
                },
                {
                    "id": "LoyaltyPoint",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/LoyaltyPoint.php"
                },
                {
                    "id": "Vehicle",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Vehicle.php"
                },
                {
                    "id": "Payment",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Payment.php"
                },
                {
                    "id": "User",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/User.php"
                },
                {
                    "id": "ParkingSpot",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/ParkingSpot.php"
                },
                {
                    "id": "MembershipTier",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/MembershipTier.php"
                },
                {
                    "id": "Ticket",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Ticket.php"
                },
                {
                    "id": "ActivityLog",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/ActivityLog.php"
                },
                {
                    "id": "Rating",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Rating.php"
                },
                {
                    "id": "Location",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Location.php"
                },
                {
                    "id": "Notification",
                    "type": "model",
                    "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/Notification.php"
                }
            ],
            "edges": [
                {
                    "from": "ParkingController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "Vehicle",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "Payment",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "ParkingController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "DashboardController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "DashboardController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "DashboardController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "DashboardController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "DashboardController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "QRScannerController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "QRScannerController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "QRScannerController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "LocationController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "LocationController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "LocationController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PaymentController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "PaymentController",
                    "to": "Payment",
                    "type": "uses"
                },
                {
                    "from": "PaymentController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PaymentController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "UserController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "UserController",
                    "to": "Plan",
                    "type": "uses"
                },
                {
                    "from": "UserController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "UserController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Payment",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Rating",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "Storage",
                    "type": "uses"
                },
                {
                    "from": "AdminController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "AdminPagesController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "UserManagementController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "UserManagementController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "UserManagementController",
                    "to": "Role",
                    "type": "uses"
                },
                {
                    "from": "DebugController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "DebugController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "DebugController",
                    "to": "App",
                    "type": "uses"
                },
                {
                    "from": "AdminLogController",
                    "to": "AdminLog",
                    "type": "uses"
                },
                {
                    "from": "ImportOldPlansController",
                    "to": "Plan",
                    "type": "uses"
                },
                {
                    "from": "ImportOldPlansController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "ImportOldPlansController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ImportOldPlansController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "ImportOldPlansController",
                    "to": "IOFactory",
                    "type": "uses"
                },
                {
                    "from": "PermissionController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RoleController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RoleController",
                    "to": "Role",
                    "type": "uses"
                },
                {
                    "from": "PageEditorController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PageEditorController",
                    "to": "File",
                    "type": "uses"
                },
                {
                    "from": "NotificationController",
                    "to": "Notification",
                    "type": "uses"
                },
                {
                    "from": "NotificationController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "Plan",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "PlanComment",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "PlanVote",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "PlanLog",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "($plan, $user, $validated) {\n            PlanVote::updateOrCreate(\n                ['plan_id' => $plan->id, 'user_id' => $user->id],\n                [\n                    'vote' => $validated['vote'], \n                    'comment' => $validated['comment'] ?? null \/\/ تأكد من إضافة comment لـ Fillable في المودل\n                ]\n            )",
                    "type": "uses"
                },
                {
                    "from": "CommitteeController",
                    "to": "($plan, $user, $request, $newStatus, $oldStatus) {\n            $plan->update([\n                'status' => $newStatus,\n                'reviewed_by' => $user->id,\n                'reviewed_at' => now(),\n            ])",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "ParkingType",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "GuestBookingController",
                    "to": "Carbon",
                    "type": "uses"
                },
                {
                    "from": "HomeController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "HomeController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "HomeController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "HomeController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "CommitteePrivateNoteController",
                    "to": "CommitteePrivateNote",
                    "type": "uses"
                },
                {
                    "from": "CommitteePrivateNoteController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "CommitteePrivateNoteController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "CommitteePrivateNoteController",
                    "to": "Gate",
                    "type": "uses"
                },
                {
                    "from": "ReviewController",
                    "to": "Review",
                    "type": "uses"
                },
                {
                    "from": "ReviewController",
                    "to": "Study",
                    "type": "uses"
                },
                {
                    "from": "ReviewController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ReviewController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "PlanFileController",
                    "to": "Plan",
                    "type": "uses"
                },
                {
                    "from": "PlanFileController",
                    "to": "Storage",
                    "type": "uses"
                },
                {
                    "from": "DebugController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "DebugController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "DebugController",
                    "to": "App",
                    "type": "uses"
                },
                {
                    "from": "AttendantController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "AttendantController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "AttendantController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "QRController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "QRController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ReferralController",
                    "to": "Referral",
                    "type": "uses"
                },
                {
                    "from": "ReferralController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PlanPdfController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PlanPdfController",
                    "to": "Plan",
                    "type": "uses"
                },
                {
                    "from": "PlanPdfController",
                    "to": "Pdf",
                    "type": "uses"
                },
                {
                    "from": "PlanPdfController",
                    "to": "($request) {\r\n                $q->where('name', 'like', \"%{$request->student}%\")",
                    "type": "uses"
                },
                {
                    "from": "PlanPdfController",
                    "to": "($request) {\r\n                $q->where('name', 'like', \"%{$request->supervisor}%\")",
                    "type": "uses"
                },
                {
                    "from": "RatingController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Plan",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "PlanLog",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "PlanComment",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Notification",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Study",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Department",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Storage",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "Validator",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "($user, $validated, $request) {\r\n                \/\/ التحقق النهائي من عدم وجود خطة نشطة (مع Lock)\r\n                $blockingStatuses = [\r\n    Plan::STATUS_IN_REVIEW,\r\n    Plan::STATUS_IN_FORWARDING,\r\n    Plan::STATUS_SENT_TO_COMMITTEE,\r\n    Plan::STATUS_APPROVED,\r\n]",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "($user) {\r\n                $q->where('department_id', $user->department_id)",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "($plan, $user, $validated, $request, $oldStatus) {\r\n\/\/ 1. تحديث البيانات الأساسية\r\n            $plan->title = $validated['title']",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "($plan, $user, $validated, $action, $oldStatus) {\r\n            $plan->status = $action['new_status']",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "($plan, $user, $newSupervisor, $oldSupervisor) {\r\n            $plan->assigned_supervisor_id = $newSupervisor->id",
                    "type": "uses"
                },
                {
                    "from": "PlanController",
                    "to": "(&$fileIssues) {\r\n                foreach ($plans as $plan) {\r\n                    if ($plan->pdf_file && !Storage::disk('public')->exists($plan->pdf_file)) {\r\n                        $fileIssues->push(['plan_id' => $plan->id, 'type' => 'original', 'path' => $plan->pdf_file])",
                    "type": "uses"
                },
                {
                    "from": "MapController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "MapController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "MapController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PermissionController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RoleController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RoleController",
                    "to": "Role",
                    "type": "uses"
                },
                {
                    "from": "HealthController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "HealthController",
                    "to": "Cache",
                    "type": "uses"
                },
                {
                    "from": "HealthController",
                    "to": "Log",
                    "type": "uses"
                },
                {
                    "from": "SupervisorNoteController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "SupervisorNoteController",
                    "to": "SupervisorNote",
                    "type": "uses"
                },
                {
                    "from": "SupervisorNoteController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "SupervisorNoteController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "StudyController",
                    "to": "Study",
                    "type": "uses"
                },
                {
                    "from": "StudyController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "StudyController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "StudyController",
                    "to": "Storage",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Log",
                    "type": "uses"
                },
                {
                    "from": "ResetPasswordController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ResetPasswordController",
                    "to": "Password",
                    "type": "uses"
                },
                {
                    "from": "ResetPasswordController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "ResetPasswordController",
                    "to": "Str",
                    "type": "uses"
                },
                {
                    "from": "AuthenticatedSessionController",
                    "to": "LoginRequest",
                    "type": "uses"
                },
                {
                    "from": "AuthenticatedSessionController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "AuthenticatedSessionController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "VerificationController",
                    "to": "VerifiesEmails",
                    "type": "uses"
                },
                {
                    "from": "VerificationController",
                    "to": "controller",
                    "type": "uses"
                },
                {
                    "from": "RegisteredUserController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "RegisteredUserController",
                    "to": "Registered",
                    "type": "uses"
                },
                {
                    "from": "RegisteredUserController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RegisteredUserController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "RegisteredUserController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "RegisteredUserController",
                    "to": "Rules",
                    "type": "uses"
                },
                {
                    "from": "ConfirmPasswordController",
                    "to": "ConfirmsPasswords",
                    "type": "uses"
                },
                {
                    "from": "ConfirmPasswordController",
                    "to": "controller",
                    "type": "uses"
                },
                {
                    "from": "ForgotPasswordController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ForgotPasswordController",
                    "to": "Password",
                    "type": "uses"
                },
                {
                    "from": "LoginController",
                    "to": "AuthenticatesUsers",
                    "type": "uses"
                },
                {
                    "from": "LoginController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RegisterController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "RegisterController",
                    "to": "RegistersUsers",
                    "type": "uses"
                },
                {
                    "from": "RegisterController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "RegisterController",
                    "to": "Validator",
                    "type": "uses"
                },
                {
                    "from": "RegisterController",
                    "to": "DB",
                    "type": "uses"
                },
                {
                    "from": "RegisterController",
                    "to": "($data) {\r\n            \/\/ 1. إنشاء المستخدم وحفظ القسم العلمي\r\n            $user = User::create([\r\n                'name'          => $data['name'],\r\n                'email'         => $data['email'],\r\n                'password'      => Hash::make($data['password']),\r\n                'role'          => $data['role'],          \/\/ الحقل الانتقالي (Legacy)\r\n                'department_id' => $data['department_id'], \/\/ تخزين القسم العلمي المختار\r\n                'is_active'     => false,                 \/\/ غير مفعّل حتى يوافق رئيس النظام\r\n                'supervisor_id' => null,\r\n            ])",
                    "type": "uses"
                },
                {
                    "from": "LocationController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "LocationController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "PaymentController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "TestController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "RatingController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Location",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "TicketController",
                    "to": "Validator",
                    "type": "uses"
                },
                {
                    "from": "AuthController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "AuthController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "AuthController",
                    "to": "Hash",
                    "type": "uses"
                },
                {
                    "from": "AuthController",
                    "to": "Validator",
                    "type": "uses"
                },
                {
                    "from": "ApiController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "ApiController",
                    "to": "Http",
                    "type": "uses"
                },
                {
                    "from": "ApiController",
                    "to": "Log",
                    "type": "uses"
                },
                {
                    "from": "AuthController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "AuthController",
                    "to": "Auth",
                    "type": "uses"
                },
                {
                    "from": "LoyaltyController",
                    "to": "LoyaltyPoint",
                    "type": "uses"
                },
                {
                    "from": "LoyaltyController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "AttendantScanController",
                    "to": "Ticket",
                    "type": "uses"
                },
                {
                    "from": "AttendantScanController",
                    "to": "ParkingSpot",
                    "type": "uses"
                },
                {
                    "from": "AttendantScanController",
                    "to": "User",
                    "type": "uses"
                },
                {
                    "from": "AttendantScanController",
                    "to": "Request",
                    "type": "uses"
                },
                {
                    "from": "Controller",
                    "to": "AuthorizesRequests",
                    "type": "uses"
                },
                {
                    "from": "Controller",
                    "to": "ValidatesRequests",
                    "type": "uses"
                },
                {
                    "from": "Controller",
                    "to": "Controller as BaseController",
                    "type": "uses"
                },
                {
                    "from": "Controller",
                    "to": "AuthorizesRequests, ValidatesRequests",
                    "type": "uses"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "Ticket",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "User",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "AuditLog",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "TicketStatusChanged",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "DB",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "Log",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "AuthorizationException",
                    "type": "depends_on"
                },
                {
                    "from": "TicketWorkflowService",
                    "to": "($ticket, $newStatus, $actor, $oldStatus, $metadata) {\n            \/\/ Update ticket\n            $ticket->status = $newStatus",
                    "type": "depends_on"
                },
                {
                    "from": "AuditLog",
                    "to": "BelongsTo",
                    "type": "extends"
                },
                {
                    "from": "User",
                    "to": "HasApiTokens",
                    "type": "extends"
                },
                {
                    "from": "User",
                    "to": "User as Authenticatable",
                    "type": "extends"
                },
                {
                    "from": "User",
                    "to": "Notifiable",
                    "type": "extends"
                },
                {
                    "from": "User",
                    "to": "HasApiTokens, Notifiable",
                    "type": "extends"
                },
                {
                    "from": "Ticket",
                    "to": "HasFactory",
                    "type": "extends"
                },
                {
                    "from": "Ticket",
                    "to": "BelongsTo",
                    "type": "extends"
                },
                {
                    "from": "Ticket",
                    "to": "HasOne",
                    "type": "extends"
                }
            ]
        },
        "business_rules": [
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical",
                "class": "",
                "method": "",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/patch_controller.php",
                "line": 19
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual",
                "class": "DatabaseSeeder",
                "method": "run",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php",
                "line": 40
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual",
                "class": "DatabaseSeeder",
                "method": "run",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php",
                "line": 69
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual",
                "class": "DatabaseSeeder",
                "method": "run",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/database\/seeders\/DatabaseSeeder.php",
                "line": 98
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "MigrateLegacyRolesToRbac",
                "method": "handle",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Console\/Commands\/MigrateLegacyRolesToRbac.php",
                "line": 30
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd",
                "class": "",
                "method": "",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Helpers\/admin_log.php",
                "line": 33
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "WorkflowEngine",
                "method": "execute",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php",
                "line": 27
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "WorkflowEngine",
                "method": "execute",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php",
                "line": 31
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "WorkflowEngine",
                "method": "validatePermission",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php",
                "line": 63
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "WorkflowEngine",
                "method": "validatePermission",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php",
                "line": 68
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "WorkflowEngine",
                "method": "validatePermission",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php",
                "line": 76
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical",
                "class": "WorkflowEngine",
                "method": "validatePermission",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Workflow\/WorkflowEngine.php",
                "line": 78
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd",
                "class": "ParkingType",
                "method": "calculatePrice",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/ParkingType.php",
                "line": 27
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd",
                "class": "ParkingType",
                "method": "calculatePrice",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/ParkingType.php",
                "line": 33
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd",
                "class": "User",
                "method": "updateMembershipTier",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Models\/User.php",
                "line": 54
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "PlanCommentPolicy",
                "method": "view",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Policies\/PlanCommentPolicy.php",
                "line": 29
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "PlanCommentPolicy",
                "method": "view",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Policies\/PlanCommentPolicy.php",
                "line": 39
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "PlanCommentPolicy",
                "method": "create",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Policies\/PlanCommentPolicy.php",
                "line": 55
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\Identical",
                "class": "PlanCommentPolicy",
                "method": "delete",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Policies\/PlanCommentPolicy.php",
                "line": 85
            },
            {
                "type": "business_rule",
                "condition": "PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical",
                "class": "PlanVotePolicy",
                "method": "vote",
                "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Policies\/PlanVotePolicy.php",
                "line": 33
            }
        ],
        "impact_analysis": {
            "file": "\/home\/b03sme1dfsz2\/public_html\/vp\/app\/Http\/Controllers\/ParkingController.php",
            "change_type": "modify",
            "affected_files": [],
            "affected_classes": [],
            "affected_methods": [],
            "affected_tests": [],
            "risk_score": 0,
            "recommendations": []
        }
    },
    "score": {
        "score": 12,
        "grade": "F",
        "issues": [
            "تقسيم الـ Controllers الكبيرة (3)",
            "إضافة علاقات للـ Models (1)",
            "إضافة Policies (51)",
            "إصلاح N+1 Queries (2)",
            "Controllers بدون ميثودات (6)"
        ],
        "total_issues": 5
    }
}