108 lines
4.7 KiB
PHP
108 lines
4.7 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Models\EvaluationRuleSet;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
class EvaluationRuleSetSeeder extends Seeder
|
||
{
|
||
public function run(): void
|
||
{
|
||
// Compat profil: co nejvyšší matching coverage, neshody řeší až scoring policy.
|
||
// Pro přísnější režim: zapnout match_require_* a penalizace, snížit toleranci času,
|
||
// případně zapnout multiplikátory.
|
||
EvaluationRuleSet::updateOrCreate(
|
||
['code' => 'default_vhf_compat'],
|
||
[
|
||
'name' => 'Default VHF (compat)',
|
||
'description' => 'Permisivní profil – maximalizuje matching, mismatchy řeší policy ve scoringu.',
|
||
'scoring_mode' => 'DISTANCE',
|
||
'points_per_qso' => 1,
|
||
'points_per_km' => 1.0,
|
||
'use_multipliers' => false,
|
||
'multiplier_type' => 'WWL',
|
||
'dup_qso_policy' => 'ZERO_POINTS',
|
||
'nil_qso_policy' => 'ZERO_POINTS',
|
||
'no_counterpart_log_policy' => 'FLAG_ONLY',
|
||
'not_in_counterpart_log_policy' => 'ZERO_POINTS',
|
||
'unique_qso_policy' => 'FLAG_ONLY',
|
||
'busted_call_policy' => 'ZERO_POINTS',
|
||
'busted_exchange_policy' => 'ZERO_POINTS',
|
||
'busted_serial_policy' => 'ZERO_POINTS',
|
||
'busted_locator_policy' => 'ZERO_POINTS',
|
||
'busted_rst_policy' => 'ZERO_POINTS',
|
||
'penalty_busted_rst_points' => 0,
|
||
'penalty_dup_points' => 0,
|
||
'penalty_nil_points' => 0,
|
||
'penalty_busted_call_points' => 0,
|
||
'penalty_busted_exchange_points' => 0,
|
||
'penalty_busted_serial_points' => 0,
|
||
'penalty_busted_locator_points' => 0,
|
||
'dupe_scope' => 'BAND',
|
||
'callsign_normalization' => 'IGNORE_SUFFIX',
|
||
'distance_rounding' => 'CEIL',
|
||
'min_distance_km' => 1,
|
||
'require_locators' => false,
|
||
'out_of_window_policy' => 'INVALID',
|
||
'penalty_out_of_window_points' => 0,
|
||
'exchange_type' => 'SERIAL_WWL',
|
||
'exchange_requires_wwl' => true,
|
||
'exchange_requires_serial' => true,
|
||
'exchange_requires_report' => true,
|
||
'exchange_pattern' => null,
|
||
'ignore_slash_part' => true,
|
||
'ignore_third_part' => true,
|
||
'letters_in_rst' => false,
|
||
'rst_ignore_third_char' => true,
|
||
'discard_qso_rec_diff_call' => true,
|
||
'discard_qso_sent_diff_call' => false,
|
||
'discard_qso_rec_diff_rst' => true,
|
||
'discard_qso_sent_diff_rst' => false,
|
||
'discard_qso_rec_diff_code' => true,
|
||
'discard_qso_sent_diff_code' => false,
|
||
'discard_qso_rec_diff_serial' => true,
|
||
'discard_qso_sent_diff_serial' => false,
|
||
'discard_qso_rec_diff_wwl' => true,
|
||
'discard_qso_sent_diff_wwl' => false,
|
||
'match_tiebreak_order' => [
|
||
'time_diff',
|
||
'exchange_match',
|
||
'locator_match',
|
||
'report_match',
|
||
'log_qso_id',
|
||
],
|
||
'match_require_locator_match' => false,
|
||
'match_require_exchange_match' => false,
|
||
'multiplier_scope' => 'PER_BAND',
|
||
'multiplier_source' => 'VALID_ONLY',
|
||
'wwl_multiplier_level' => 'LOCATOR_6',
|
||
'checklog_matching' => true,
|
||
'out_of_window_dq_threshold' => 600,
|
||
'time_diff_dq_threshold_percent' => 30,
|
||
'time_diff_dq_threshold_sec' => 600,
|
||
'bad_qso_dq_threshold_percent' => 30,
|
||
'time_tolerance_sec' => 600,
|
||
'require_unique_qso' => true,
|
||
'allow_time_mismatch_pairing' => false,
|
||
'time_mismatch_max_sec' => null,
|
||
'allow_time_shift_one_hour' => true,
|
||
'time_shift_seconds' => 3600,
|
||
'time_mismatch_policy' => 'ZERO_POINTS',
|
||
'callsign_suffix_max_len' => 4,
|
||
'callsign_levenshtein_max' => 0,
|
||
'dup_resolution_strategy' => [
|
||
'paired_first',
|
||
'ok_first',
|
||
'earlier_time',
|
||
'lower_id',
|
||
],
|
||
'operating_window_mode' => 'NONE',
|
||
'operating_window_hours' => null,
|
||
'sixhr_ranking_mode' => 'IARU',
|
||
'options' => null,
|
||
]
|
||
);
|
||
}
|
||
}
|