where($column,$id)->exists())return true; if(!Schema::hasTable('wc_applications'))return false; return DB::table('wc_applications')->where($area==='service_drafts'?'new_service_id':'new_billing_id',$id)->exists(); } public static function state(string $area,int $id): ?string { if(!self::linked($area,$id))return null;if(!Schema::hasTable('wc_applications'))return 'current'; $event=DB::table('wc_applications')->where($area==='service_drafts'?'old_service_id':'old_billing_id',$id)->first(); return $event?($event->kind==='replace'?'superseded':'cancelled'):'current'; } public static function assertCurrent(string $area,int $id): void { $state=self::state($area,$id);abort_if($state!==null&&$state!=='current',409,'Preparação comercial substituída ou cancelada; apenas consulta histórica.'); } }