*/ class AutomationRuleFactory extends Factory { /** * Define the model's default state. * * @return array */ public function definition(): array { return [ 'title' => fake()->sentence(3), 'priority' => fake()->numberBetween(0, 100), 'rules_json' => [ 'and' => [ ['>' => [['var' => 'amount'], 100]], ['in' => ['grocery', ['var' => 'description']]], ], ], 'action_category_id' => null, 'action_note' => null, 'action_note_iv' => null, 'origin' => RuleOrigin::User, ]; } /** * A rule created/maintained by AI auto-categorization. */ public function ai(): static { return $this->state(fn (array $attributes): array => [ 'origin' => RuleOrigin::Ai, ]); } /** * A rule learned from a user's category correction. */ public function correction(): static { return $this->state(fn (array $attributes): array => [ 'origin' => RuleOrigin::Correction, ]); } }