- 定期契約データを psectionusertypemonths で統合 - 新規/更新 減免/通常 を1レコードに集約 - Operator Queue に park_id と operator_id を正確に設定 - SQL に contract_money の SUM を追加
98 lines
2.0 KiB
PHP
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();
|
|
}
|
|
}
|
|
|