Initial commit

This commit is contained in:
Zdeněk Burda
2026-01-09 21:26:40 +01:00
parent e83aec6dca
commit 41e3ce6f25
404 changed files with 61250 additions and 28 deletions

View File

@@ -0,0 +1,107 @@
<?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,
]
);
}
}