laravel.md
Equipment rental: inventory manager using Laravel
Summary
A inventory manager blueprint for equipment rental built with Laravel on Ample. Domain schema: equipment (sku, name, category, day_rate, serial_tracked): rental catalog; stock_movements (sku, unit_serial, delta, reason, moved_at): check-outs, returns and maintenance; rentals (rental_no, period_start, period_end, status): rentals with status transitions; rental_lines (rental_no, sku, unit_serial, rate): rental contents; events (seq, record_type, record_id, kind, at): application-owned history written in the same transaction. Public information: equipment catalog and rates, availability calendar, deposit and insurance terms. Kept out of scope until handling is reviewed: renter identity documents, payment and deposit details. Identity verification and deposits are outside these flows; only availability and rental status are modeled. Technical basis verified on Laravel: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected).
Infrastructure requirements
- Compute: verified
- Postgres: verified
- S3-compatible object storage: verified
Prerequisites
- A Laravel project (composer install --no-dev)
- A PostgreSQL driver reading DATABASE_URL
- Bucket credentials from
ample bucket createpassed as encrypted S3_* environment variables - A review of which equipment rental data classes may be handled at all; this blueprint models public information only
Exact tested configuration
- template:
php-8.5 - runtime:
php - size:
s-1vcpu-1gb - install:
composer install --no-dev --prefer-dist --no-interaction --no-progress --optimize-autoloader - start:
frankenphp php-server --listen :$PORT --root public
Steps
- Model the equipment rental domain. Create the tables equipment, stock_movements, rentals, rental_lines, events.
- Workflow step 1. Model SKUs and stock movements; derive stock from movements
- Workflow step 2. Apply movements transactionally with an optimistic version check on the SKU
- Workflow step 3. Record an event per movement for history
- Workflow step 4. Deploy and verify history and rejected stale updates
- Deploy. Run the synchronous deploy once and read the result.
- Verify. Run the pattern self-test(s) from the example and your own acceptance checks for the equipment rental workflow.
Tested examples
- Laravel pattern fixture: Verified transactional workflows basis for this blueprint.
Success checks
- App responds on its public URL.
- Transactional-workflows self-test from the example.
Limitations
- Verified on the php-8.5 template at s-1vcpu-1gb; other sizes are unknown or unverified.
- Managed PostgreSQL 16 only; extensions, connection limits and backup or restore procedures are not verified.
Cost estimate
Estimated 10.00 USD per month.
Verification evidence
- Canary run detail: Laravel pattern fixture deployed on Ample (composer install --no-dev from composer.lock).
Execution binding
MCP tool ample_deploy (registry mcp:ample_deploy).