refactor: extract DbDialect helper, inline ProfileValidationRules trait
Audit items #17 and #21. #17 — DayOfWeekSignal and StickinessSignal each had their own isSqlite ternary picking between SQLite (strftime/julianday) and MySQL (DAYOFWEEK/DATEDIFF) date expressions. Centralised in App\Services\Prediction\Signals\DbDialect. #21 — ProfileValidationRules was a trait with one consumer (CreateNewUser); inlined the rules into the action and deleted the trait. Also dropped PasswordValidationRules::currentPasswordRules() which was unused. PasswordValidationRules trait stays (two consumers). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,10 +8,7 @@ final class StickinessSignal extends AbstractSignal
|
||||
{
|
||||
public function compute(SignalContext $context): array
|
||||
{
|
||||
$isSqlite = DB::connection()->getDriverName() === 'sqlite';
|
||||
$diffExpr = $isSqlite
|
||||
? 'CAST((julianday(MAX(price_effective_at)) - julianday(MIN(price_effective_at))) AS INTEGER)'
|
||||
: 'DATEDIFF(MAX(price_effective_at), MIN(price_effective_at))';
|
||||
$diffExpr = DbDialect::maxMinDayDiffExpr('price_effective_at');
|
||||
|
||||
$rows = DB::table('station_prices')
|
||||
->where('fuel_type', $context->fuelType->value)
|
||||
|
||||
Reference in New Issue
Block a user