'integer', 'operator_id' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime' ]; /** * 売上集計との関連 * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function earningsSummaries() { return $this->hasMany(EarningsSummary::class, 'psection_id', 'psection_id'); } /** * 定期契約との関連 * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function regularContracts() { return $this->hasMany(RegularContract::class, 'psection_id', 'psection_id'); } /** * アクティブな車種区分一覧を取得 * * @return \Illuminate\Database\Eloquent\Collection */ public static function getActivePsections() { return self::orderBy('psection_id')->get(); } /** * 車種区分名で検索 * * @param string $subject 車種区分名 * @return Psection|null */ public static function findBySubject(string $subject): ?Psection { return self::where('psection_subject', $subject)->first(); } /** * 文字列表現 * * @return string */ public function __toString(): string { return sprintf( 'Psection[ID:%d, Subject:%s]', $this->psection_id, $this->psection_subject ); } }