Add MODEL-CARBON-01 rule to prevent Carbon casts in models

Remove auto-generated tests and .expect files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-12-25 21:04:36 +00:00
parent 29c657f7a7
commit 1322bbf988
18 changed files with 335 additions and 120 deletions

View File

@@ -1135,6 +1135,10 @@ Sessions persist 365 days. Never implement "Remember Me".
**Two Classes - Strict Separation**: `Rsx_Time` (datetimes with timezone) | `Rsx_Date` (calendar dates, no timezone)
**String-Based Philosophy**: RSpade uses ISO strings, not Carbon objects. Dates are `"2025-12-24"`, datetimes are `"2025-12-24T15:30:00-06:00"`. Same format in PHP, JavaScript, JSON, database queries. No object serialization issues.
**Model Casts**: `Rsx_Model_Abstract` auto-applies `Rsx_Date_Cast` (DATE columns) and `Rsx_DateTime_Cast` (DATETIME columns). Never define `$casts` with `'date'`, `'datetime'`, or `'timestamp'` - these use Carbon and are blocked by `rsx:check`.
### Rsx_Time - Moments in Time
```php
use App\RSpade\Core\Time\Rsx_Time;
@@ -1226,6 +1230,8 @@ Options: `--user=ID`, `--console`, `--screenshot-path`, `--screenshot-width=mobi
**SPA routes ARE server routes.** If you get 404, the route doesn't exist - check route definitions. Never dismiss as "SPA can't be tested server-side".
**rsx:debug captures the fully-rendered final DOM state** after all async operations, component lifecycles, and data loading complete. If the DOM doesn't match expectations, it's not a timing issue - what you see is what the user sees. Investigate the actual code, not the capture timing.
### Debugging
- **rsx_dump_die()** - Debug output