needLeakTestRemind, needStorageRemind: $this->needStorageRemind, leakTestDone: $this->leakTestDone, leakTestResult: $this->leakTestResult ); } /** * 设置需要测漏提醒 */ public function withLeakTestRemind(bool $need = true): self { return new self( needEnhanceWash: $this->needEnhanceWash, needLeakTestRemind: $need, needStorageRemind: $this->needStorageRemind, leakTestDone: $this->leakTestDone, leakTestResult: $this->leakTestResult ); } /** * 设置需要存储提醒 */ public function withStorageRemind(bool $need = true): self { return new self( needEnhanceWash: $this->needEnhanceWash, needLeakTestRemind: $this->needLeakTestRemind, needStorageRemind: $need, leakTestDone: $this->leakTestDone, leakTestResult: $this->leakTestResult ); } /** * 设置测漏完成 */ public function withLeakTestDone(string $result = ''): self { return new self( needEnhanceWash: $this->needEnhanceWash, needLeakTestRemind: $this->needLeakTestRemind, needStorageRemind: $this->needStorageRemind, leakTestDone: true, leakTestResult: $result ); } /** * 是否有任何提醒 */ public function hasAnyRemind(): bool { return $this->needEnhanceWash || $this->needLeakTestRemind || $this->needStorageRemind; } /** * 转换为数组 */ public function toArray(): array { return [ 'needEnhanceWash' => $this->needEnhanceWash, 'needLeakTestRemind' => $this->needLeakTestRemind, 'needStorageRemind' => $this->needStorageRemind, 'leakTestDone' => $this->leakTestDone, 'leakTestResult' => $this->leakTestResult, ]; } }