# c20246068paclibar-source/ccad-midterm-paclibar architecture

> Architecture diagram of the GitHub repository c20246068paclibar-source/ccad-midterm-paclibar, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/c20246068paclibar-source/ccad-midterm-paclibar
- Repository: https://github.com/c20246068paclibar-source/ccad-midterm-paclibar

## Overview

This Laravel/Inertia application manages film equipment inventory and dispatches, with authentication and a React interface. The main operational flow is a request routed to the dispatch controller, which validates availability, calculates rental fees, and updates dispatch and asset state; the controller also loads dispatch records and related production/technician data for Inertia pages. The tree indicates a separate maintenance-record domain, but its implementation details are not shown. Edges are limited to relationships visible in the supplied excerpts or SOURCE INDEX.

Main entry points: [`app/Models/AssetDispatch.php`](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/AssetDispatch.php) (Asset dispatch), [`app/Http/Controllers/MaintenanceRecordController.php`](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/MaintenanceRecordController.php) (Dispatch lifecycle), [`routes/auth.php`](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/routes/auth.php) (Authentication routes), [`app/Models/FilmAsset.php`](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/FilmAsset.php) (Film asset)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_operations["Equipment operations"]
  node_film_routes["Film asset routes<br/>[web.php]"]
  node_film_controller["Film asset management"]
  node_dispatch_controller["Dispatch lifecycle"]
  node_asset[("Film asset<br/>[FilmAsset.php]")]
  node_dispatch[("Asset dispatch<br/>[AssetDispatch.php]")]
  node_production[("Production<br/>[Production.php]")]
  node_technician[("Technician<br/>[Technician.php]")]
  node_maintenance[("Maintenance records")]
end

subgraph group_identity["Identity and access"]
  node_auth_routes["Authentication routes<br/>[auth.php]"]
  node_session_auth["Session authentication"]
  node_registration["User registration"]
  node_verification["Email verification"]
  node_user_model[("User account<br/>[User.php]")]
  node_login_request["Login validation<br/>[LoginRequest.php]"]
end

subgraph group_web["Web interface"]
  node_frontend["Inertia React entry<br/>[app.tsx]"]
  node_assets_page["Film asset page<br/>[index.tsx]"]
  node_appearance["Appearance settings<br/>[use-appearance.tsx]"]
  node_logo_icon["Application logo<br/>[app-logo-icon.tsx]"]
end

subgraph group_framework["Request framework"]
  node_inertia_middleware["Inertia middleware"]
  node_bootstrap["Application setup<br/>[app.php]"]
end

node_user(("User"))

node_user -->|"requests"| node_film_routes
node_film_routes -->|"routes to"| node_film_controller
node_film_controller -->|"reads and writes"| node_asset
node_film_controller -->|"checks dispatches"| node_dispatch
node_dispatch_controller -->|"creates and updates"| node_dispatch
node_dispatch_controller -->|"checks and updates"| node_asset
node_dispatch_controller -->|"loads"| node_production
node_dispatch_controller -->|"loads"| node_technician
node_dispatch -->|"belongs to"| node_asset
node_dispatch -->|"belongs to"| node_production
node_dispatch -->|"belongs to"| node_technician
node_maintenance -->|"references"| node_asset
node_maintenance -->|"references"| node_technician
node_user -->|"requests access"| node_auth_routes
node_auth_routes -->|"routes to"| node_session_auth
node_auth_routes -->|"routes to"| node_registration
node_auth_routes -->|"routes to"| node_verification
node_session_auth -->|"authenticates with"| node_login_request
node_registration -->|"creates account"| node_user_model
node_bootstrap -->|"registers"| node_inertia_middleware
node_frontend -->|"initializes theme"| node_appearance
node_frontend -->|"resolves pages"| node_assets_page

click node_film_routes "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/routes/web.php"
click node_film_controller "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/FilmAssetController.Php"
click node_dispatch_controller "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/MaintenanceRecordController.php"
click node_asset "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/FilmAsset.php"
click node_dispatch "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/AssetDispatch.php"
click node_production "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/Production.php"
click node_technician "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/Technician.php"
click node_maintenance "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/MaintenaceRecord.php"
click node_auth_routes "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/routes/auth.php"
click node_session_auth "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_registration "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_verification "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/Auth/VerifyEmailController.php"
click node_user_model "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/User.php"
click node_login_request "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Requests/Auth/LoginRequest.php"
click node_inertia_middleware "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Middleware/HandleInertiaRequests.php"
click node_bootstrap "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/bootstrap/app.php"
click node_frontend "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/app.tsx"
click node_assets_page "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/pages/FilmAssets/index.tsx"
click node_appearance "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/hooks/use-appearance.tsx"
click node_logo_icon "https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/components/app-logo-icon.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_film_routes,node_film_controller,node_dispatch_controller,node_asset,node_dispatch,node_production,node_technician,node_maintenance,node_user toneBlue
class node_auth_routes,node_session_auth,node_registration,node_verification,node_user_model,node_login_request toneAmber
class node_frontend,node_assets_page,node_appearance,node_logo_icon toneMint
class node_inertia_middleware,node_bootstrap toneRose
```

## Components

### Equipment operations

- [Film asset routes](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/routes/web.php): `routes/web.php`
- [Film asset management](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/FilmAssetController.Php): `app/Http/Controllers/FilmAssetController.Php`
- [Dispatch lifecycle](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/MaintenanceRecordController.php): `app/Http/Controllers/MaintenanceRecordController.php`
- [Film asset](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/FilmAsset.php): `app/Models/FilmAsset.php`
- [Asset dispatch](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/AssetDispatch.php): `app/Models/AssetDispatch.php`
- [Production](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/Production.php): `app/Models/Production.php`
- [Technician](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/Technician.php): `app/Models/Technician.php`
- [Maintenance records](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/MaintenaceRecord.php): `app/Models/MaintenaceRecord.php`

### Identity and access

- [Authentication routes](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/routes/auth.php): `routes/auth.php`
- [Session authentication](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [User registration](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Email verification](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Controllers/Auth/VerifyEmailController.php): `app/Http/Controllers/Auth/VerifyEmailController.php`
- [User account](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Models/User.php): `app/Models/User.php`
- [Login validation](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Requests/Auth/LoginRequest.php): `app/Http/Requests/Auth/LoginRequest.php`

### Web interface

- [Inertia React entry](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/app.tsx): `resources/js/app.tsx`
- [Film asset page](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/pages/FilmAssets/index.tsx): `resources/js/pages/FilmAssets/index.tsx`
- [Appearance settings](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/hooks/use-appearance.tsx): `resources/js/hooks/use-appearance.tsx`
- [Application logo](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/resources/js/components/app-logo-icon.tsx): `resources/js/components/app-logo-icon.tsx`

### Request framework

- [Inertia middleware](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/app/Http/Middleware/HandleInertiaRequests.php): `app/Http/Middleware/HandleInertiaRequests.php`
- [Application setup](https://github.com/c20246068paclibar-source/ccad-midterm-paclibar/blob/main/bootstrap/app.php): `bootstrap/app.php`

### Other components

- **User**

## Connections

- User → Film asset routes: requests
- Film asset routes → Film asset management: routes to (evidence: `routes/web.php`)
- Film asset management → Film asset: reads and writes (evidence: `app/Http/Controllers/FilmAssetController.Php`)
- Film asset management → Asset dispatch: checks dispatches (evidence: `app/Http/Controllers/FilmAssetController.Php`)
- Dispatch lifecycle → Asset dispatch: creates and updates (evidence: `app/Http/Controllers/MaintenanceRecordController.php`)
- Dispatch lifecycle → Film asset: checks and updates (evidence: `app/Http/Controllers/MaintenanceRecordController.php`)
- Dispatch lifecycle → Production: loads (evidence: `app/Http/Controllers/MaintenanceRecordController.php`)
- Dispatch lifecycle → Technician: loads (evidence: `app/Http/Controllers/MaintenanceRecordController.php`)
- Asset dispatch → Film asset: belongs to (evidence: `app/Models/AssetDispatch.php`)
- Asset dispatch → Production: belongs to (evidence: `app/Models/AssetDispatch.php`)
- Asset dispatch → Technician: belongs to (evidence: `app/Models/AssetDispatch.php`)
- Maintenance records → Film asset: references (evidence: `app/Models/MaintenaceRecord.php`)
- Maintenance records → Technician: references (evidence: `app/Models/MaintenaceRecord.php`)
- User → Authentication routes: requests access
- Authentication routes → Session authentication: routes to (evidence: `routes/auth.php`)
- Authentication routes → User registration: routes to (evidence: `routes/auth.php`)
- Authentication routes → Email verification: routes to (evidence: `routes/auth.php`)
- Session authentication → Login validation: authenticates with (evidence: `app/Http/Controllers/Auth/AuthenticatedSessionController.php`)
- User registration → User account: creates account (evidence: `app/Http/Controllers/Auth/RegisteredUserController.php`)
- Application setup → Inertia middleware: registers (evidence: `bootstrap/app.php`)
- Inertia React entry → Appearance settings: initializes theme (evidence: `resources/js/app.tsx`)
- Inertia React entry → Film asset page: resolves pages (evidence: `resources/js/app.tsx`)
