so-manager-dev.com/app/Models/JurisdictionParking.php
Your Name 9441a34f6f SHJ-9/SHJ-10: 修复定期契約集計処理の統合ロジック
- 定期契約データを psectionusertypemonths で統合
- 新規/更新  減免/通常 を1レコードに集約
- Operator Queue に park_id と operator_id を正確に設定
- SQL に contract_money の SUM を追加
2025-10-03 20:32:09 +09:00

98 lines
2.0 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* 管轄駐輪場モデル - jurisdiction_parkingテーブル
*
* オペレータが管轄する駐輪場の情報を管理
*/
class JurisdictionParking extends Model
{
/**
* テーブル名
*
* @var string
*/
protected $table = 'jurisdiction_parking';
/**
* プライマリキー
*
* @var string
*/
protected $primaryKey = 'jurisdiction_parking_id';
/**
* タイムスタンプ使用
*
* @var bool
*/
public $timestamps = true;
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
/**
* 一括代入可能な属性
*
* @var array
*/
protected $fillable = [
'jurisdiction_parking_name',
'ope_id',
'park_id',
'operator_id'
];
/**
* キャストする属性
*
* @var array
*/
protected $casts = [
'jurisdiction_parking_id' => 'integer',
'ope_id' => 'integer',
'park_id' => 'integer',
'operator_id' => 'integer',
'created_at' => 'datetime',
'updated_at' => 'datetime'
];
/**
* オペレータとの関連
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function ope()
{
return $this->belongsTo(Ope::class, 'ope_id', 'ope_id');
}
/**
* 駐輪場との関連
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function park()
{
return $this->belongsTo(Park::class, 'park_id', 'park_id');
}
/**
* 指定駐輪場を管轄するオペレータIDリストを取得
*
* @param int $parkId 駐輪場ID
* @return array オペレータIDの配列
*/
public static function getOperatorIdsByPark(int $parkId): array
{
return self::where('park_id', $parkId)
->pluck('ope_id')
->toArray();
}
}