تقييم شامل مع Call Graph, Dependency Graph, Business Rules, Impact Analysis
📁 /home/b03sme1dfsz2/public_html/vp
5 مشكلة تحتاج إلى تحسين
| From | To | Type |
|---|---|---|
| ... و 78 استدعاء آخر | ||
| Type | Class | Method |
|---|---|---|
| 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 قاعدة أخرى | ||
| Method | URI | Controller |
|---|---|---|
| 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 مسار آخر | ||
| Controller | Methods | Complexity | File |
|---|---|---|---|
| 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 |
| Model | Table | Relations |
|---|---|---|
| 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 |
{
"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
}
}