210 Commits

Author SHA1 Message Date
rlong d64e1d5578 change phone number display 2026-04-26 15:24:05 -04:00
rlong ad66fef19b fix menu location 2026-04-26 15:08:47 -04:00
rlong 5a7684bc8c move menu item 2026-04-26 15:08:00 -04:00
rlong aed29fbf56 Merge pull request 'Add customer-facing check for winning items' (#4) from North-Hackathon/silent-auction:bidder-facing-checkout into master
Reviewed-on: #4
2026-04-26 15:05:13 -04:00
rlong 816fba5121 Merge pull request 'feat: implement searchable selects for bidder and item lookups using Select2' (#3) from feature/searchable-selects into master
Reviewed-on: #3
2026-04-26 15:01:31 -04:00
rlong ddbfc642f2 feat: implement searchable selects for bidder and item lookups using Select2 2026-04-25 11:55:52 -04:00
rlong b6db2f200b Add customer-facing check for winning items 2026-04-24 15:56:29 -04:00
rlong ef4ef144a6 Merge pull request 'v5 update fixes' (#2) from v5-upgrade into master
Reviewed-on: #2
2026-04-20 15:16:51 -04:00
rlong 7a338c6a31 fix 2026-04-20 15:12:10 -04:00
rlong 44521ab677 fix 2026-04-20 15:11:05 -04:00
rlong 4b6839aafa fix 2026-04-20 15:08:46 -04:00
rlong 186865890d fix 2026-04-20 15:08:25 -04:00
rlong cfc8f58a1e fix 2026-04-20 15:07:57 -04:00
rlong 59f6c733ac fix 2026-04-20 15:06:55 -04:00
rlong a4fff7aea3 fix 2026-04-20 15:05:51 -04:00
rlong 47ae95f060 fix 2026-04-20 15:05:28 -04:00
rlong 377cc4ab77 fix 2026-04-20 15:04:39 -04:00
rlong 947fb290f6 fix 2026-04-20 15:02:58 -04:00
rlong 0c794c89a4 fix 2026-04-20 15:02:03 -04:00
rlong 55925c8abf fix 2026-04-20 14:59:31 -04:00
rlong 20349e57c4 fix 2026-04-20 14:56:30 -04:00
rlong 10aa32e19c undo fixes 2026-04-20 14:51:30 -04:00
rlong 8bd68a42bd fix 419 2026-04-20 14:51:04 -04:00
rlong fc96cb96ed fix relation 2026-04-20 14:49:29 -04:00
rlong d25890d3ac fix relation 2026-04-20 14:43:48 -04:00
rlong f6df7aa08e change session driver to database 2026-04-20 14:40:21 -04:00
rlong db1d4ba165 test 2026-04-20 14:30:41 -04:00
rlong a30b70bf27 fix actions 2026-04-20 14:29:39 -04:00
rlong 193d7ecb1f fix action 2026-04-20 14:28:35 -04:00
rlong a01afdc321 cleanup actions 2026-04-20 14:26:18 -04:00
rlong ee526dce89 test relationship fix 2026-04-20 14:09:11 -04:00
rlong 5eea2de51e fix actions 2026-04-20 14:06:25 -04:00
rlong 48fd3d2b35 fix actions 2026-04-20 14:03:00 -04:00
rlong 237fe9f07b action fix 2026-04-20 14:01:34 -04:00
rlong bab18b6d26 actions fix 2026-04-20 14:00:36 -04:00
rlong 6d8f2b8ead test actions fix 2026-04-20 13:59:32 -04:00
rlong 849794ff90 v5 update fixes 2026-04-20 13:48:05 -04:00
rlong 24beacae7e fix money 2026-04-20 13:19:59 -04:00
rlong 4283399ffa fix money 2026-04-20 13:19:24 -04:00
rlong de1443b300 fix money 2026-04-20 13:18:51 -04:00
rlong 02f0fed769 test money fix 2026-04-20 13:16:35 -04:00
rlong 87f9befa72 more sorting 2026-04-20 13:11:55 -04:00
rlong d32c2d6a99 add sorting 2026-04-20 13:09:11 -04:00
rlong e3a64c6ba3 fix score display 2026-04-20 13:08:15 -04:00
rlong 9326fb5026 fix score display 2026-04-20 13:07:46 -04:00
rlong bdd06abcd1 fix filament winner display 2026-04-20 13:05:12 -04:00
rlong 72dfb16018 Merge pull request 'upgrade to new versions' (#1) from upgrade-laravel-filament into master
Reviewed-on: #1
2026-04-20 13:02:12 -04:00
rlong 2374d02670 upgrade to new versions 2026-04-20 12:56:52 -04:00
rlong 472cb78ffb cleanup old winner tabulation 2026-04-20 10:15:08 -04:00
rlong a99021587e add score to winner table 2026-04-20 10:08:56 -04:00
rlong 13837faaa5 add score to winner table 2026-04-20 10:07:36 -04:00
rlong 9954817c16 add score to winner table 2026-04-20 10:06:23 -04:00
rlong c13238014a add score to winner table 2026-04-20 10:03:36 -04:00
rlong f9d2fcfa06 add score to winner table 2026-04-20 10:01:21 -04:00
rlong 3431bef787 Fix sort 2026-04-20 09:51:39 -04:00
rlong 47bf882702 Fix sort 2026-04-20 09:41:49 -04:00
rlong 70c0e1f768 Fix sort 2026-04-20 09:39:54 -04:00
rlong 894fecf6b8 Fix sort 2026-04-20 09:39:30 -04:00
rlong 9051c8bd25 Fix sort 2026-04-20 09:35:55 -04:00
rlong efa24f90ce Fix sort 2026-04-20 09:34:55 -04:00
rlong eeb38a367e Fix sort 2026-04-20 09:32:35 -04:00
rlong d113d44463 Fix sort 2026-04-20 09:28:28 -04:00
rlong 085ae34e89 Fix sort 2026-04-20 09:27:41 -04:00
rlong 1969b7edc8 Fix sort 2026-04-20 09:25:41 -04:00
rlong 2fa2c0b9f7 Fix sort 2026-04-20 09:22:19 -04:00
rlong cb990adb2a Fix sort 2026-04-20 09:04:18 -04:00
rlong dae9f6f39e Fix sort 2026-04-20 08:48:24 -04:00
rlong a5e6b5f8d6 Fix sort 2026-04-20 08:46:46 -04:00
rlong e5097cf466 fix command 2026-04-16 16:05:25 -04:00
rlong ecb1dc2bcf fix route 2026-04-16 16:03:04 -04:00
rlong 3390f66226 update sort 2026-04-16 16:01:20 -04:00
rlong e7c539e4ef test new pages 2026-04-16 15:50:03 -04:00
rlong 330e210fde disable registration 2025-07-14 11:06:05 -04:00
rlong 7053ce029b composer update 2025-07-12 13:44:39 -04:00
rlong 2823e03793 update judging categories 2025-05-19 12:14:14 -04:00
rlong 42067a7b04 fix years for categories 2024-05-12 15:01:21 -04:00
rlong 9e65a3731c fix typo 2024-05-08 19:25:39 -04:00
rlong 4bdf14de83 fix typo 2024-05-08 19:09:44 -04:00
rlong 141d6c25fa adjust year categories 2024-03-16 13:39:58 -04:00
rlong 11ef29d89c remove stats dir 2024-03-16 13:24:54 -04:00
rlong a2ef1742af update vehicle registration form 2023-04-13 16:41:15 -04:00
rlong 4cc8296049 Fix typo 2023-04-12 19:39:09 -04:00
rlong d0dd8d35a9 Update tabulation for new year 2023-04-12 19:31:00 -04:00
rlong 4fb991e4c0 Merge branch 'upgrades-and-filament' into 'master'
Upgrades and filament

See merge request tfmm/Silent-Auction!1
2023-03-16 18:24:24 +00:00
rlong 925032b146 add show winner tabulation to menu 2023-03-16 14:22:11 -04:00
rlong 78715cc3ef auto truncate winner table 2023-03-16 14:13:40 -04:00
rlong 2ef2f216cb tabulate showwinners route 2023-03-16 14:09:54 -04:00
rlong fac607c57d add tabulate winner route 2023-03-16 14:02:19 -04:00
rlong b85754b888 typo 2023-03-16 13:49:34 -04:00
rlong bc7a52ab28 set resource order 2023-03-16 13:49:01 -04:00
rlong efa2e08c31 typo 2023-03-16 13:45:31 -04:00
rlong 5b814baaa7 bidder phn num 2023-03-16 13:44:41 -04:00
rlong 44fffdcc97 bidder phn num 2023-03-16 13:44:06 -04:00
rlong 25100251b7 bidder tel num 2023-03-16 13:41:50 -04:00
rlong a49bb5e218 veh score rel mgr 2023-03-16 13:37:56 -04:00
rlong 0d73255ee8 Fix typo 2023-03-16 13:30:34 -04:00
rlong a2f3b2c380 veh owner rel mgr form 2023-03-16 13:29:39 -04:00
rlong 5e7155457d vehicle resource reorder tabs 2023-03-16 13:19:31 -04:00
rlong aed20ddd00 typo 2023-03-16 13:17:13 -04:00
rlong e6e49ddfcb winning bids bidder select 2023-03-16 13:16:40 -04:00
rlong 082c110616 winning bid mask 2023-03-16 13:15:28 -04:00
rlong 24841b3b98 items 2023-03-16 13:13:42 -04:00
rlong b51e56ff6f winning bids fix 2023-03-16 13:07:06 -04:00
rlong eb2dee7c13 fix bids 2023-03-16 12:59:33 -04:00
rlong 99d8b9ec0a composer update 2023-03-16 12:52:38 -04:00
rlong 892bf2b09f fix money mask 2023-03-16 12:39:15 -04:00
rlong f4255621fe fix commas 2023-03-16 12:36:26 -04:00
rlong a13c9be41c more resource setup 2022-09-28 07:52:27 -04:00
rlong ef96dc7cd8 update sorting and composer 2022-09-26 19:12:15 -04:00
rlong 1629e22b63 resources and relation mgrs 2022-09-12 07:57:09 -04:00
rlong e484c0df98 resource setup 2022-09-04 13:57:38 -04:00
rlong 8f95e68e61 work on fixing bidders and vehicles filament 2022-09-03 12:49:20 -04:00
rlong bc6f3c05d8 typo 2022-08-28 15:30:40 -04:00
rlong d91e1703e7 try to fix vehownerrelmgr 2022-08-28 15:29:40 -04:00
rlong a588f397b2 vehownerrelmgr 2022-08-28 15:16:50 -04:00
rlong ee9d54eeff update vehscorerelationmgr 2022-08-28 15:14:06 -04:00
rlong 9ffb0cafc5 fix relation 2022-08-28 15:12:08 -04:00
rlong 6d38150b1d typo 2022-08-28 15:10:17 -04:00
rlong d4a3fb430b vehresource form 2022-08-28 15:08:15 -04:00
rlong f4a19837bb typo 2022-08-16 18:10:49 -04:00
rlong 60b526adf8 typo 2022-08-16 18:10:25 -04:00
rlong b6641efea7 sort fix 2022-08-16 18:10:01 -04:00
rlong a15f64253b test veh resource sort fix 2022-08-16 18:08:24 -04:00
rlong 2399774b52 sorting fix 2022-08-14 19:14:58 -04:00
rlong cf8cf1a00c code cleanup 2022-08-14 11:32:00 -04:00
rlong 0991c4b5eb typo 2022-08-14 11:27:26 -04:00
rlong 875ae802e2 vehicle resource 2022-08-14 11:26:59 -04:00
rlong bee1c9dd0d typos 2022-08-14 11:23:01 -04:00
rlong 65f5d194ed typo 2022-08-14 11:22:36 -04:00
rlong 7211867d1c vehicles resource 2022-08-14 11:22:14 -04:00
rlong 1a20df54a1 SVeh relation mgr display update 2022-08-14 11:15:36 -04:00
rlong cb7008a74f fix veh score form 2022-08-14 11:13:50 -04:00
rlong 8536fb0c7b scored veh relation veh scores 2022-08-14 11:11:02 -04:00
rlong 5249fff6f6 undo last 2022-08-11 17:21:47 -04:00
rlong 421b19b3e9 vscores resource updates 2022-08-11 17:20:14 -04:00
rlong ad3dbe3b42 vscore relation 2022-08-11 17:14:34 -04:00
rlong e0a5e98a6a vehicle relation 2022-08-11 17:09:03 -04:00
rlong c9843c6404 score relation 2022-08-08 21:22:43 -04:00
rlong 3382de51d5 score relation 2022-08-08 21:21:39 -04:00
rlong 401f432a96 score relation 2022-08-08 21:20:52 -04:00
rlong 1d3abb8b8d score relation 2022-08-08 21:16:39 -04:00
rlong b3e2909728 score relation 2022-08-08 21:15:22 -04:00
rlong 4f751c32b0 score relation 2022-08-08 21:13:18 -04:00
rlong 484e2c23ec scores relations 2022-08-08 21:11:30 -04:00
rlong 78c72d1937 scores sort 2022-08-08 21:07:15 -04:00
rlong 6a118fc047 relationmanager 2022-08-08 21:05:06 -04:00
rlong 910ab01712 score relation 2022-08-08 21:03:05 -04:00
rlong e23fe4eacf score relation 2022-08-08 21:01:59 -04:00
rlong 69bc4f3313 score relation 2022-08-08 21:00:52 -04:00
rlong 5cd5b84ebd score relation 2022-08-08 20:59:40 -04:00
rlong 4922235796 vehicle score relation 2022-08-08 20:58:29 -04:00
rlong be12b4756d vehicle relation manager 2022-08-08 20:56:55 -04:00
rlong 9bc97078fc vehicle scores setup 2022-08-08 20:56:28 -04:00
rlong 012a95bc36 winner relation 2022-08-08 20:50:05 -04:00
rlong eab6be34be award relation 2022-08-08 20:49:19 -04:00
rlong 0a826b5dfd winner relation 2022-08-08 20:47:01 -04:00
rlong dbb2821472 winner relation 2022-08-08 20:45:03 -04:00
rlong 3b93552ec7 winner relation 2022-08-08 20:43:32 -04:00
rlong 87be8975c0 winner relation 2022-08-08 20:42:37 -04:00
rlong 24ac516631 winner relation 2022-08-08 20:42:10 -04:00
rlong acf63aeb46 winner relation 2022-08-08 20:39:33 -04:00
rlong 10ce7b5224 Winner resource relation 2022-08-08 20:38:29 -04:00
rlong 3033006fd6 fix winner vehicle 2022-08-08 20:36:05 -04:00
rlong 82bfe4da3f fix winner category 2022-08-08 20:34:48 -04:00
rlong 5a330c6cda relationship update 2022-08-08 15:01:38 -04:00
rlong e618bd4b56 relation updates 2022-08-08 14:57:49 -04:00
rlong 6191923269 category relation 2022-08-08 14:55:05 -04:00
rlong 05d347914e fix category relation 2022-08-08 14:54:16 -04:00
rlong 2bbb10e55b remove failed sort 2022-08-07 13:55:31 -04:00
rlong ae21c17f60 sort test 2022-08-07 13:46:27 -04:00
rlong 56b6180432 Revert sorting 2022-08-07 13:37:33 -04:00
rlong 910a8f79fb composer install 2022-08-07 13:36:02 -04:00
rlong 3c6097a5b2 vehicle sort 2022-08-07 13:34:06 -04:00
rlong 7d4964e268 sort test 2022-08-07 13:26:20 -04:00
rlong eebffa5fa2 one more sort fix 2022-08-07 13:23:46 -04:00
rlong e0182f4127 fix sort 2022-08-07 13:23:18 -04:00
rlong b2c91d16f7 try ordering 2022-08-07 13:21:50 -04:00
rlong 0133c405a5 fix pc relation 2022-08-07 13:18:48 -04:00
rlong 9ac36b7ab8 fix vehicle relation 2022-08-07 13:18:06 -04:00
rlong e5b7b58cc8 peopleschoice setup 2022-08-07 13:17:10 -04:00
rlong 0ba081bb8c fix plural 2022-08-07 13:09:46 -04:00
rlong 31eb22c3c2 Item grouping 2022-08-07 13:07:31 -04:00
rlong afa1c78db4 winner resource 2022-08-07 12:54:40 -04:00
rlong d4d33e3267 winner resource update 2022-08-07 12:52:59 -04:00
rlong 6e2bdee1c6 resources and relations 2022-08-07 12:48:05 -04:00
rlong 83a89329b8 categoryrelation 2022-08-07 10:35:25 -04:00
rlong fb50e5624f category relation 2022-08-07 09:01:34 -04:00
rlong 8fbdcc2a2f category relation 2022-08-07 08:47:36 -04:00
rlong 7fdc4bbc42 category edit 2022-08-07 08:44:39 -04:00
rlong fde7c758d7 category relationship 2022-08-06 19:19:33 -04:00
rlong b6ff1755ad category relations 2022-08-06 19:13:29 -04:00
rlong 92daf26e8a category relations 2022-08-06 19:02:34 -04:00
rlong ef7aa5fe90 category relations 2022-08-06 19:02:21 -04:00
rlong c83921b40a judge resource 2022-08-06 18:50:26 -04:00
rlong 2068289064 category edit 2022-08-06 18:47:14 -04:00
rlong 2b735c9fbf move debugbar to dev req 2022-08-06 16:36:44 -04:00
rlong c63f4b6042 remove laravelhealth 2022-08-06 16:34:22 -04:00
rlong 7e001c7b56 add laravelhealth 2022-08-06 16:31:12 -04:00
rlong 5cd77faf79 category edit 2022-08-06 16:24:05 -04:00
rlong cef7923531 category edit 2022-08-06 16:17:54 -04:00
rlong 2192f9de7c category resource form setup 2022-08-06 16:16:32 -04:00
rlong de31581290 work on category resource 2022-08-06 16:11:15 -04:00
rlong 3ac8d12c15 update category model 2022-08-06 15:50:07 -04:00
rlong 003e686224 Update carshowcategory filament resource 2022-08-06 15:46:22 -04:00
rlong f54e41aef9 Add filament 2022-08-06 15:39:24 -04:00
rlong a3f751e8fa upgrade to l9 2022-08-06 14:35:30 -04:00
rlong 01ce1a4f58 update to l8 2022-08-06 14:03:59 -04:00
rlong 17f6924abb update to l7 2022-08-06 13:58:30 -04:00
rlong bc534f4d74 update php package 2022-08-06 13:26:47 -04:00
rlong dba67cec9c update to v6 2022-08-06 13:20:02 -04:00
173 changed files with 19511 additions and 7576 deletions
+1
View File
@@ -0,0 +1 @@
{"version":2,"defects":{"Tests\\Feature\\MyWinningsTest::test_mywinnings_form_is_accessible":8,"Tests\\Feature\\MyWinningsTest::test_mywinnings_results_show_correct_data":8,"Tests\\Feature\\MyWinningsTest::test_mywinnings_invalid_bidder_shows_error":8},"times":{"Tests\\Unit\\PhoneFormattingTest::it_formats_a_10_digit_phone_number":0.018,"Tests\\Unit\\PhoneFormattingTest::it_strips_non_numeric_characters_before_formatting":0,"Tests\\Unit\\PhoneFormattingTest::it_returns_original_value_if_not_10_digits":0,"Tests\\Unit\\PhoneFormattingTest::bidder_model_accessor_formats_phone_number":0.003}}
+97 -284
View File
@@ -3,306 +3,119 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Bidders;
use App\Models\CarShowCategory;
use App\Models\CarShowWinner;
use App\Models\PeoplesChoice;
use App\Models\Vehicles;
use App\Models\VehicleScores;
use Illuminate\Support\Facades\DB;
class TabulateWinners extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'carshow:tabulatewinners';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Tabulate Show Winners, and add them to the CarShowWinner table';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
protected $description = 'Tabulate Show Winners. Year Category 1st places can overlap with Best in Show/People\'s Choice.';
public function handle()
{
function bestInShowWinner()
{
$bestInShowWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $bestInShowWinnerQuery->vehicle;
CarShowWinner::truncate();
$this->info('Starting tabulation...');
// 2. BEST IN SHOW (Category 6)
$this->recordJudgedWinners(6, 'first', null, null, true);
// 3. PEOPLE'S CHOICE (Category 3)
$this->recordPeoplesChoiceWinners(3, 'first');
// 4. YEAR CATEGORIES
$yearConfigs = [
['id' => 17, 'name' => '0-1942', 'start' => 0, 'end' => 1942],
['id' => 18, 'name' => '1943-1969', 'start' => 1943, 'end' => 1969],
['id' => 20, 'name' => '1970-2000', 'start' => 1970, 'end' => 2000],
['id' => 19, 'name' => '2001-Current', 'start' => 2001, 'end' => 2026],
];
foreach ($yearConfigs as $config) {
$this->info("Processing Category: {$config['name']}");
$this->recordJudgedWinners($config['id'], 'first', $config['start'], $config['end'], false);
$this->recordJudgedWinners($config['id'], 'second', $config['start'], $config['end'], true);
$this->recordJudgedWinners($config['id'], 'third', $config['start'], $config['end'], true);
$this->recordJudgedWinners($config['id'], 'fourth', $config['start'], $config['end'], true);
$this->recordJudgedWinners($config['id'], 'fifth', $config['start'], $config['end'], true);
}
function bestInShow2ndWinner()
{
$bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $bestInShow2ndWinnerQuery->vehicle;
$this->info('Winners tabulated successfully.');
}
private function recordJudgedWinners($categoryId, $place, $startYear = null, $endYear = null, $excludeExisting = true)
{
$query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->where('vehicles.doNotJudge', 0);
if ($excludeExisting) {
$query->whereNotIn('vehicle_scores.vehicle', function ($q) {
$q->select('vehicle')->from('car_show_winners');
});
}
function pcWinner()
{
$peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
if ($startYear !== null) $query->where('vehicles.year', '>=', $startYear);
if ($endYear !== null) $query->where('vehicles.year', '<=', $endYear);
$maxScore = (clone $query)
->groupBy('vehicles.id')
->selectRaw('sum(vehicle_scores.overall_score) as totalscore')
->orderBy('totalscore', 'desc')
->value('totalscore');
if ($maxScore) {
$winners = $query->selectRaw('vehicles.id as vehicle_id, sum(vehicle_scores.overall_score) as totalscore')
->groupBy('vehicles.id')
->having('totalscore', '=', $maxScore)
->get();
foreach ($winners as $winner) {
CarShowWinner::updateOrCreate([
'category' => $categoryId,
'place' => $place,
'vehicle' => $winner->vehicle_id
], [
// Added totalscore here
'total_score' => $winner->totalscore
]);
}
}
}
private function recordPeoplesChoiceWinners($categoryId, $place)
{
$maxVotes = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->where('vehicles.doNotJudge', 0)
->whereNotIn('peoples_choice.vehicle', function ($q) {
$q->select('vehicle')->from('car_show_winners');
})
->groupBy('peoples_choice.vehicle')
->selectRaw('sum(pc_count) as totalvotes')
->orderBy('totalvotes', 'desc')
->value('totalvotes');
if ($maxVotes) {
$winners = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->selectRaw('peoples_choice.vehicle as vehicle_id, sum(pc_count) as totalvotes')
->where('vehicles.doNotJudge', 0)
->whereNotIn('peoples_choice.vehicle', function ($q) {
$q->select('vehicle')->from('car_show_winners');
})
->groupBy('peoples_choice.vehicle')
->selectRaw('*, sum(pc_count) as totalscore')
->whereNotIn('vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $peoplesChoiceWinnerQuery->vehicle;
->having('totalvotes', '=', $maxVotes)
->get();
foreach ($winners as $winner) {
CarShowWinner::create([
'category' => $categoryId,
'place' => $place,
'vehicle' => $winner->vehicle_id,
// Added totalvotes here
'total_score' => $winner->totalvotes
]);
}
}
function pc2ndWinner()
{
$peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->groupBy('peoples_choice.vehicle')
->selectRaw('*, sum(pc_count) as totalscore')
->whereNotIn('vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $peoplesChoice2ndWinnerQuery->vehicle;
}
function zeroTo43Winner()
{
$zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 0)
->where('vehicles.year', '<=', 1943)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $zeroTo43Query->vehicle;
}
function zeroTo432ndWinner()
{
$zeroTo432ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 0)
->where('vehicles.year', '<=', 1943)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $zeroTo432ndQuery->vehicle;
}
function fortyFourToNinetySevenWinner()
{
$fortyFourToNinetySevenQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1944)
->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $fortyFourToNinetySevenQuery->vehicle;
}
function fortyFourToNinetySeven2ndWinner()
{
$fortyFourToNinetySeven2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1944)
->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $fortyFourToNinetySeven2ndQuery->vehicle;
}
function NinetyEightToCurrentWinner()
{
$NinetyEightToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1998)
//->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $NinetyEightToCurrentQuery->vehicle;
}
function NinetyEightToCurrent2ndWinner()
{
$NinetyEightToCurrent2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1998)
//->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $NinetyEightToCurrent2ndQuery->vehicle;
}
//Insert Best In Show Winner
CarShowWinner::updateOrCreate(
[
'category' => '6',
'place' => 'first'
],
[
'vehicle' => bestInShowWinner()
]
);
/*
//Insert Best In Show 2nd Place Winner
CarShowWinner::updateOrCreate(
[
'category' => '6',
'place' => 'second'
],
[
'vehicle' => bestInShow2ndWinner()
]
);
*/
//Insert People's Choice Winner
CarShowWinner::updateOrCreate(
[
'category' => '3',
'place' => 'first'
],
[
'vehicle' => pcWinner()
]
);
/*
CarShowWinner::updateOrCreate(
[
'category' => '3',
'place' => 'second'
],
[
'vehicle' => pc2ndWinner()
]
);
*/
//Insert Year Award Winners
//0-1943
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'first'
],
[
'vehicle' => zeroTo43Winner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'second'
],
[
'vehicle' => zeroTo432ndWinner()
]
);
//1944-1997
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'first'
],
[
'vehicle' => fortyFourToNinetySevenWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'second'
],
[
'vehicle' => fortyFourToNinetySeven2ndWinner()
]
);
//1998-Current
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'first'
],
[
'vehicle' => NinetyEightToCurrentWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'second'
],
[
'vehicle' => NinetyEightToCurrent2ndWinner()
]
);
}
}
@@ -0,0 +1,309 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Bidders;
use App\Models\CarShowCategory;
use App\Models\CarShowWinner;
use App\Models\PeoplesChoice;
use App\Models\Vehicles;
use App\Models\VehicleScores;
use Illuminate\Support\Facades\DB;
class TabulateWinners extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'carshow:tabulatewinners';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Tabulate Show Winners, and add them to the CarShowWinner table';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
function bestInShowWinner()
{
$bestInShowWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $bestInShowWinnerQuery->vehicle;
}
function bestInShow2ndWinner()
{
$bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $bestInShow2ndWinnerQuery->vehicle;
}
function pcWinner()
{
$peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->groupBy('peoples_choice.vehicle')
->selectRaw('*, sum(pc_count) as totalscore')
->whereNotIn('vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $peoplesChoiceWinnerQuery->vehicle;
}
function pc2ndWinner()
{
$peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->groupBy('peoples_choice.vehicle')
->selectRaw('*, sum(pc_count) as totalscore')
->whereNotIn('vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $peoplesChoice2ndWinnerQuery->vehicle;
}
function zeroTo43Winner()
{
$zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 0)
->where('vehicles.year', '<=', 1943)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $zeroTo43Query->vehicle;
}
function zeroTo432ndWinner()
{
$zeroTo432ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 0)
->where('vehicles.year', '<=', 1943)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $zeroTo432ndQuery->vehicle;
}
function fortyFourToNinetySevenWinner()
{
$fortyFourToNinetySevenQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1944)
->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $fortyFourToNinetySevenQuery->vehicle;
}
function fortyFourToNinetySeven2ndWinner()
{
$fortyFourToNinetySeven2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1944)
->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $fortyFourToNinetySeven2ndQuery->vehicle;
}
function NinetyEightToCurrentWinner()
{
$NinetyEightToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1998)
//->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $NinetyEightToCurrentQuery->vehicle;
}
function NinetyEightToCurrent2ndWinner()
{
$NinetyEightToCurrent2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1998)
//->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $NinetyEightToCurrent2ndQuery->vehicle;
}
// Truncate table first
CarShowWinner::truncate();
//Insert Best In Show Winner
CarShowWinner::updateOrCreate(
[
'category' => '6',
'place' => 'first'
],
[
'vehicle' => bestInShowWinner()
]
);
/*
//Insert Best In Show 2nd Place Winner
CarShowWinner::updateOrCreate(
[
'category' => '6',
'place' => 'second'
],
[
'vehicle' => bestInShow2ndWinner()
]
);
*/
//Insert People's Choice Winner
CarShowWinner::updateOrCreate(
[
'category' => '3',
'place' => 'first'
],
[
'vehicle' => pcWinner()
]
);
/*
CarShowWinner::updateOrCreate(
[
'category' => '3',
'place' => 'second'
],
[
'vehicle' => pc2ndWinner()
]
);
*/
//Insert Year Award Winners
//0-1943
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'first'
],
[
'vehicle' => zeroTo43Winner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'second'
],
[
'vehicle' => zeroTo432ndWinner()
]
);
//1944-1997
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'first'
],
[
'vehicle' => fortyFourToNinetySevenWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'second'
],
[
'vehicle' => fortyFourToNinetySeven2ndWinner()
]
);
//1998-Current
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'first'
],
[
'vehicle' => NinetyEightToCurrentWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'second'
],
[
'vehicle' => NinetyEightToCurrent2ndWinner()
]
);
}
}
@@ -0,0 +1,309 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Bidders;
use App\Models\CarShowCategory;
use App\Models\CarShowWinner;
use App\Models\PeoplesChoice;
use App\Models\Vehicles;
use App\Models\VehicleScores;
use Illuminate\Support\Facades\DB;
class TabulateWinners extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'carshow:tabulatewinners';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Tabulate Show Winners, and add them to the CarShowWinner table';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
function bestInShowWinner()
{
$bestInShowWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $bestInShowWinnerQuery->vehicle;
}
function bestInShow2ndWinner()
{
$bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $bestInShow2ndWinnerQuery->vehicle;
}
function pcWinner()
{
$peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->groupBy('peoples_choice.vehicle')
->selectRaw('*, sum(pc_count) as totalscore')
->whereNotIn('vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $peoplesChoiceWinnerQuery->vehicle;
}
function pc2ndWinner()
{
$peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
->groupBy('peoples_choice.vehicle')
->selectRaw('*, sum(pc_count) as totalscore')
->whereNotIn('vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $peoplesChoice2ndWinnerQuery->vehicle;
}
function zeroTo42Winner()
{
$zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 0)
->where('vehicles.year', '<=', 1942)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $zeroTo43Query->vehicle;
}
function fortyThreeToSixtyNineWinner()
{
$fortyThreeToSixtyNineQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1943)
->where('vehicles.year', '<=', 1969)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $fortyThreeToSixtyNineQuery->vehicle;
}
function seventyToTwoThousandWinner()
{
$seventyToTwoThousandQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 1970)
->where('vehicles.year', '<=', 2000)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $seventyToTwoThousandQuery->vehicle;
}
function TwoThousandOneToCurrentWinner()
{
$TwoThousandOneToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
->groupBy('vehicles.id')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
->whereNotIn('vehicle_scores.vehicle', function($query){
$query->select('vehicle')->from('car_show_winners');
})
->where('vehicles.year', '>=', 2001)
//->where('vehicles.year', '<=', 1997)
->where('vehicles.doNotJudge', '=', 0)
->orderBy('totalscore','desc')
->first();
return $TwoThousandOneToCurrentQuery->vehicle;
}
// Truncate table first
CarShowWinner::truncate();
//Insert Best In Show Winner
CarShowWinner::updateOrCreate(
[
'category' => '6',
'place' => 'first'
],
[
'vehicle' => bestInShowWinner()
]
);
//Insert People's Choice Winner
CarShowWinner::updateOrCreate(
[
'category' => '3',
'place' => 'first'
],
[
'vehicle' => pcWinner()
]
);
//Insert Year Award Winners
//0-1942
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'first'
],
[
'vehicle' => zeroTo42Winner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'second'
],
[
'vehicle' => zeroTo42Winner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '17',
'place' => 'third'
],
[
'vehicle' => zeroTo42Winner()
]
);
//1943-1969
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'first'
],
[
'vehicle' => fortyThreeToSixtyNineWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'second'
],
[
'vehicle' => fortyThreeToSixtyNineWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '18',
'place' => 'third'
],
[
'vehicle' => fortyThreeToSixtyNineWinner()
]
);
//1970-2000
CarShowWinner::updateOrCreate(
[
'category' => '20',
'place' => 'first'
],
[
'vehicle' => seventyToTwoThousandWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '20',
'place' => 'second'
],
[
'vehicle' => seventyToTwoThousandWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '20',
'place' => 'third'
],
[
'vehicle' => seventyToTwoThousandWinner()
]
);
//2001-Current
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'first'
],
[
'vehicle' => TwoThousandOneToCurrentWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'second'
],
[
'vehicle' => TwoThousandOneToCurrentWinner()
]
);
CarShowWinner::updateOrCreate(
[
'category' => '19',
'place' => 'third'
],
[
'vehicle' => TwoThousandOneToCurrentWinner()
]
);
}
}
+29 -44
View File
@@ -2,64 +2,49 @@
namespace App\Exceptions;
use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that should not be reported.
* A list of exception types with their corresponding custom log levels.
*
* @var array
* @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*>
*/
protected $dontReport = [
\Illuminate\Auth\AuthenticationException::class,
\Illuminate\Auth\Access\AuthorizationException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
protected $levels = [
//
];
/**
* Report or log an exception.
* A list of the exception types that are not reported.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
* @var array<int, class-string<\Throwable>>
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
public function register()
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
/**
* Convert an authentication exception into an unauthenticated response.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Auth\AuthenticationException $exception
* @return \Illuminate\Http\Response
*/
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('login'));
$this->reportable(function (Throwable $e) {
//
});
}
}
@@ -0,0 +1,95 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource\RelationManagers;
use App\Models\Bidders;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class BiddersResource extends Resource
{
protected static ?string $model = Bidders::class;
protected static ?string $recordTitleAttribute = 'idbidders';
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('bidder_fname')->label('First Name'),
TextInput::make('bidder_lname')->label('Last Name'),
TextInput::make('bidder_addr')->label('Address'),
TextInput::make('bidder_city')->label('City'),
TextInput::make('bidder_state')->label('State'),
TextInput::make('bidder_zip')->label('Zip'),
TextInput::make('bidder_phone')->label('Phone Number')
->mask('(999) 999-9999'),
TextInput::make('bidder_email')->label('Email'),
TextInput::make('bidder_assigned_number')->label('Assigned Number'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('bidder_assigned_number')->sortable()->label('Assigned Number')->sortable(),
TextColumn::make('bidder_fname')->sortable()->label('First Name')->sortable(),
TextColumn::make('bidder_lname')->sortable()->label('Last Name')->sortable(),
TextColumn::make('bidder_addr')->label('Address')->sortable(),
TextColumn::make('bidder_city')->label('City')->sortable(),
TextColumn::make('bidder_state')->label('State')->sortable(),
TextColumn::make('bidder_zip')->label('Zip')->sortable(),
TextColumn::make('bidder_phone')->label('Phone Number')->sortable()
->formatStateUsing(fn ($state) => \App\Helpers\PhoneHelper::format($state)),
TextColumn::make('bidder_email')->label('Email')->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
])
->defaultSort('bidder_assigned_number');
}
public static function getRelations(): array
{
return [
RelationManagers\VehiclesRelationManager::class,
RelationManagers\CheckoutRelationManager::class,
RelationManagers\WinningBidsRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListBidders::route('/'),
'create' => Pages\CreateBidders::route('/create'),
'edit' => Pages\EditBidders::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateBidders extends CreateRecord
{
protected static string $resource = BiddersResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditBidders extends EditRecord
{
protected static string $resource = BiddersResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListBidders extends ListRecords
{
protected static string $resource = BiddersResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,64 @@
<?php
namespace App\Filament\Resources\BiddersResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\EditAction;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Tables\Columns\TextColumn;
class CheckoutRelationManager extends RelationManager
{
protected static string $relationship = 'checkout';
protected static ?string $recordTitleAttribute = 'bidder_num';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('bidder_num')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('bidders.bidder_assigned_number')
->label('Bidder Number')
->sortable(),
TextColumn::make('winnertotal')
->label('Total Amount')
->money('USD')
->sortable(),
TextColumn::make('paymentMethod.pm_name')
->label('Payment Method')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,84 @@
<?php
namespace App\Filament\Resources\BiddersResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\CarShowCategory;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Tables\Columns\IconColumn;
class VehiclesRelationManager extends RelationManager
{
protected static string $relationship = 'vehicles';
protected static ?string $recordTitleAttribute = 'owner';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('year')
->label('Year'),
Forms\Components\TextInput::make('make')
->label('Make'),
Forms\Components\TextInput::make('model')
->label('Model'),
Forms\Components\Select::make('type')
->label('Type')
->options(CarShowCategory::vehtype()->pluck('category_name', 'id'))
->searchable(),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('vehicleOwner.bidder_assigned_number')
->label('Number')
->sortable(),
Tables\Columns\TextColumn::make('year')
->label('Year')
->sortable(),
Tables\Columns\TextColumn::make('make')
->label('Make')
->sortable(),
Tables\Columns\TextColumn::make('model')
->label('Model')
->sortable(),
Tables\Columns\TextColumn::make('vehicleType.category_name')
->label('Type')
->sortable(),
IconColumn::make('doNotJudge')
->boolean()
->label('Judged?')
->sortable()
->falseIcon('heroicon-o-check-badge')
->trueIcon('heroicon-o-x-circle')
->trueColor('danger')
->falseColor('success'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,66 @@
<?php
namespace App\Filament\Resources\BiddersResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\Bidders;
use Filament\Actions\EditAction;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class WinningBidsRelationManager extends RelationManager
{
protected static string $relationship = 'winningBids';
protected static ?string $recordTitleAttribute = 'winning_bidder_num';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\Select::make('winning_bidder_num')
->label('Winning Bidder Number')
->options(Bidders::pluck('bidder_assigned_number', 'idbidders'))
->searchable(),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('items.item_assigned_num')
->label('Item Number')
->sortable(),
Tables\Columns\TextColumn::make('bidders.winning_bidder_num')
->label('Bidder Number')
->sortable(),
Tables\Columns\TextColumn::make('winning_cost')
->label('Winning Bid Amt')
->money('USD')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,79 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource\RelationManagers;
use App\Filament\Resources\CarShowCategoryResource\RelationManagers\VehicleRelationManager;
use App\Models\CarShowCategory;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class CarShowCategoryResource extends Resource
{
protected static ?string $model = CarShowCategory::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('category_name'),
Toggle::make('vehicle_type')->inline(false)
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('category_name')->sortable(),
IconColumn::make('vehicle_type')->boolean()->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
])
->defaultSort('category_name');
}
public static function getRelations(): array
{
return [
RelationManagers\VehicleRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCarShowCategories::route('/'),
'create' => Pages\CreateCarShowCategory::route('/create'),
'edit' => Pages\EditCarShowCategory::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCarShowCategory extends CreateRecord
{
protected static string $resource = CarShowCategoryResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCarShowCategory extends EditRecord
{
protected static string $resource = CarShowCategoryResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCarShowCategories extends ListRecords
{
protected static string $resource = CarShowCategoryResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,63 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\DissociateAction;
use Filament\Actions\AssociateAction;
class VehicleRelationManager extends RelationManager
{
protected static string $relationship = 'vehicle';
protected static ?string $recordTitleAttribute = 'id';
protected static ?string $inverseRelationship = 'vehicleType';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id'),
Tables\Columns\TextColumn::make('owner'),
Tables\Columns\TextColumn::make('year'),
Tables\Columns\TextColumn::make('make'),
Tables\Columns\TextColumn::make('model'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
DissociateAction::make(),
])
->toolbarActions([
CreateAction::make(),
AssociateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,87 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource\RelationManagers;
use App\Models\CarShowWinner;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\Select;
use App\Models\Vehicles;
use App\Models\CarShowCategory;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class CarShowWinnerResource extends Resource
{
protected static ?string $model = CarShowWinner::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
public static function form(Schema $schema): Schema
{
return $schema
->components([
Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
Select::make('category')
->label('Category')
->options(CarShowCategory::all()->pluck('category_name', 'id'))
->searchable(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('awardCategory.category_name')->label('Category')->sortable(),
TextColumn::make('awardVehicle.owner')->label('Vehicle Number')->sortable(),
TextColumn::make('total_score')->label('Total Score')->sortable(),
TextColumn::make('awardVehicle.year')->label('Year')->sortable(),
TextColumn::make('awardVehicle.make')->label('Make')->sortable(),
TextColumn::make('awardVehicle.model')->label('Model')->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
RelationManagers\AwardVehicleRelationManager::class,
RelationManagers\AwardCategoryRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCarShowWinners::route('/'),
'create' => Pages\CreateCarShowWinner::route('/create'),
'edit' => Pages\EditCarShowWinner::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCarShowWinner extends CreateRecord
{
protected static string $resource = CarShowWinnerResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCarShowWinner extends EditRecord
{
protected static string $resource = CarShowWinnerResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCarShowWinners extends ListRecords
{
protected static string $resource = CarShowWinnerResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,54 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class AwardCategoryRelationManager extends RelationManager
{
protected static string $relationship = 'awardCategory';
protected static ?string $recordTitleAttribute = 'id';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id'),
Tables\Columns\TextColumn::make('category_name'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,56 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class AwardVehicleRelationManager extends RelationManager
{
protected static string $relationship = 'awardVehicle';
protected static ?string $recordTitleAttribute = 'id';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('owner'),
Tables\Columns\TextColumn::make('year'),
Tables\Columns\TextColumn::make('make'),
Tables\Columns\TextColumn::make('model'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,98 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource\RelationManagers;
use App\Models\Checkout;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Toggle;
use App\Models\Bidders;
use App\Models\PaymentMethods;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class CheckoutResource extends Resource
{
protected static ?string $model = Checkout::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
public static function form(Schema $schema): Schema
{
return $schema
->components([
Select::make('bidder_num')
->label('Bidder')
->options(
Bidders::orderBy('bidder_assigned_number')
->pluck('bidder_assigned_number', 'idbidders')
)
->searchable(),
TextInput::make('winnertotal')
->label('Total Amount'),
Select::make('payment_method')
->label('Payment Method')
->options(PaymentMethods::all()->pluck('pm_name', 'pm_id'))
->searchable(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('bidders.bidder_assigned_number')
->label('Bidder Number')
->sortable(),
TextColumn::make('winnertotal')
->label('Total Amount')
->money('USD')
->sortable(),
TextColumn::make('paymentMethod.pm_name')
->label('Payment Method')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
])
->defaultSort('bidders.bidder_assigned_number');
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCheckouts::route('/'),
'create' => Pages\CreateCheckout::route('/create'),
'edit' => Pages\EditCheckout::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCheckout extends CreateRecord
{
protected static string $resource = CheckoutResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCheckout extends EditRecord
{
protected static string $resource = CheckoutResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCheckouts extends ListRecords
{
protected static string $resource = CheckoutResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,64 @@
<?php
namespace App\Filament\Resources\CheckoutResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class BiddersRelationManager extends RelationManager
{
protected static string $relationship = 'bidders';
protected static ?string $recordTitleAttribute = 'bidder_num';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\Select::make('bidder_num')
->label('Number')
->required()
->createOptionForm([
Forms\Components\TextInput::make('bidder_fname')->label('First Name'),
Forms\Components\TextInput::make('bidder_lname')->label('Last Name'),
Forms\Components\TextInput::make('bidder_addr')->label('Address'),
Forms\Components\TextInput::make('bidder_city')->label('City'),
Forms\Components\TextInput::make('bidder_state')->label('State'),
Forms\Components\TextInput::make('bidder_zip')->label('Zip'),
Forms\Components\TextInput::make('bidder_phone')->label('Phone Number'),
Forms\Components\TextInput::make('bidder_email')->label('Email'),
Forms\Components\TextInput::make('bidder_assigned_number')->label('Assigned Number'),
]),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('bidder_fname')->label('First Name'),
Tables\Columns\TextColumn::make('bidder_lname')->label('Last Name'),
Tables\Columns\TextColumn::make('bidder_assigned_number')->label('Number'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\CheckoutResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class PaymentMethodRelationManager extends RelationManager
{
protected static string $relationship = 'paymentMethod';
protected static ?string $recordTitleAttribute = 'payment_method';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('payment_method')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('payment_method'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
+93
View File
@@ -0,0 +1,93 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource\RelationManagers;
use App\Models\Items;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class ItemsResource extends Resource
{
protected static ?string $model = Items::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('item_assigned_num')
->label('Item Number'),
TextInput::make('item_desc')
->label('Description'),
TextInput::make('item_min_bid')
->label('Minimum Bid'),
TextInput::make('item_est_value')
->label('Estimated Value'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('item_assigned_num')
->label('Item Number')
->sortable(),
TextColumn::make('item_desc')
->label('Description'),
TextColumn::make('item_min_bid')
->label('Minimum Bid')
->money('USD')
->sortable(),
TextColumn::make('item_est_value')
->label('Estimated Value')
->money('USD')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
])
->defaultSort('item_assigned_num');
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListItems::route('/'),
'create' => Pages\CreateItems::route('/create'),
'edit' => Pages\EditItems::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateItems extends CreateRecord
{
protected static string $resource = ItemsResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditItems extends EditRecord
{
protected static string $resource = ItemsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListItems extends ListRecords
{
protected static string $resource = ItemsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\ItemsResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class WinningBidsRelationManager extends RelationManager
{
protected static string $relationship = 'winningBids';
protected static ?string $recordTitleAttribute = 'iditems';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('iditems')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('iditems'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
+72
View File
@@ -0,0 +1,72 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource\RelationManagers;
use App\Models\Judges;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class JudgesResource extends Resource
{
protected static ?string $model = Judges::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('judge_number'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('judge_number')->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListJudges::route('/'),
'create' => Pages\CreateJudges::route('/create'),
'edit' => Pages\EditJudges::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateJudges extends CreateRecord
{
protected static string $resource = JudgesResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditJudges extends EditRecord
{
protected static string $resource = JudgesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListJudges extends ListRecords
{
protected static string $resource = JudgesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\JudgesResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class VehicleScoresRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleScores';
protected static ?string $recordTitleAttribute = 'judge';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('judge')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('judge'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,75 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource\RelationManagers;
use App\Models\PaymentMethods;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class PaymentMethodsResource extends Resource
{
protected static ?string $model = PaymentMethods::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('pm_name')
->label('Method Name'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('pm_name')
->label('Method Name')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListPaymentMethods::route('/'),
'create' => Pages\CreatePaymentMethods::route('/create'),
'edit' => Pages\EditPaymentMethods::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreatePaymentMethods extends CreateRecord
{
protected static string $resource = PaymentMethodsResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditPaymentMethods extends EditRecord
{
protected static string $resource = PaymentMethodsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListPaymentMethods extends ListRecords
{
protected static string $resource = PaymentMethodsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class CheckoutRelationManager extends RelationManager
{
protected static string $relationship = 'checkout';
protected static ?string $recordTitleAttribute = 'payment_method';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('payment_method')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('payment_method'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,84 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource\RelationManagers;
use App\Models\PeoplesChoice;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use App\Models\Vehicles;
use Filament\Forms\Components\Select;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class PeoplesChoiceResource extends Resource
{
protected static ?string $model = PeoplesChoice::class;
protected static ?string $pluralModelLabel = 'Peoples Choice';
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
public static function form(Schema $schema): Schema
{
return $schema
->components([
Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
TextInput::make('pc_count'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('pc_count')->label('PC Vote Count')->sortable(),
TextColumn::make('vehicles.owner')->label('Vehicle Number')->sortable(),
TextColumn::make('vehicles.year')->label('Year')->sortable(),
TextColumn::make('vehicles.make')->label('Make')->sortable(),
TextColumn::make('vehicles.model')->label('Model')->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListPeoplesChoices::route('/'),
'create' => Pages\CreatePeoplesChoice::route('/create'),
'edit' => Pages\EditPeoplesChoice::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreatePeoplesChoice extends CreateRecord
{
protected static string $resource = PeoplesChoiceResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditPeoplesChoice extends EditRecord
{
protected static string $resource = PeoplesChoiceResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListPeoplesChoices extends ListRecords
{
protected static string $resource = PeoplesChoiceResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class VehiclesRelationManager extends RelationManager
{
protected static string $relationship = 'vehicles';
protected static ?string $recordTitleAttribute = 'vehicle';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('vehicle')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('vehicle'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,88 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource\RelationManagers;
use App\Models\VehicleScores;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Select;
use App\Models\Vehicles;
use App\Models\Judges;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class VehicleScoresResource extends Resource
{
protected static ?string $model = VehicleScores::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
public static function form(Schema $schema): Schema
{
return $schema
->components([
Select::make('judge')
->label('Judge')
->options(Judges::all()->pluck('judge_number', 'id'))
->searchable(),
Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
TextInput::make('overall_score')
->label('Overall Score'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('judges.judge_number')->label('Judge')->sortable(),
TextColumn::make('scoredVehicle.owner')->label('Vehicle Number')->sortable(),
TextColumn::make('overall_score')->label('Score')->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
RelationManagers\JudgeRelationManager::class,
RelationManagers\ScoredVehicleRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListVehicleScores::route('/'),
'create' => Pages\CreateVehicleScores::route('/create'),
'edit' => Pages\EditVehicleScores::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateVehicleScores extends CreateRecord
{
protected static string $resource = VehicleScoresResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditVehicleScores extends EditRecord
{
protected static string $resource = VehicleScoresResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListVehicleScores extends ListRecords
{
protected static string $resource = VehicleScoresResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,55 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class JudgeRelationManager extends RelationManager
{
protected static string $relationship = 'judges';
protected static ?string $recordTitleAttribute = 'judge_number';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('judge_number')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('judge_number'),
])
->filters([
//
])
->headerActions([
CreateAction::make(),
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,56 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class ScoredVehicleRelationManager extends RelationManager
{
protected static string $relationship = 'scoredVehicle';
protected static ?string $recordTitleAttribute = 'id';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('owner')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('owner'),
Tables\Columns\TextColumn::make('year')->label('Year'),
Tables\Columns\TextColumn::make('make')->label('Make'),
Tables\Columns\TextColumn::make('model')->label('Model'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
+122
View File
@@ -0,0 +1,122 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource\RelationManagers;
use App\Models\Vehicles;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Toggle;
use App\Models\Bidders;
use App\Models\CarShowCategory;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class VehiclesResource extends Resource
{
protected static ?string $model = Vehicles::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
public static function form(Schema $schema): Schema
{
return $schema
->components([
Select::make('owner')
->label('Owner')
->options(Bidders::orderBy('bidder_assigned_number')->pluck('bidder_assigned_number', 'idbidders'))
->searchable(),
TextInput::make('year')
->label('Year'),
TextInput::make('make')
->label('Make'),
TextInput::make('model')
->label('Model'),
Select::make('type')
->label('Type')
->options(CarShowCategory::vehtype()->pluck('category_name', 'id'))
->searchable(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('vehicleOwner.bidder_assigned_number')
->label('Number')
->sortable(),
TextColumn::make('year')
->label('Year')
->sortable(),
TextColumn::make('make')
->label('Make')
->sortable(),
TextColumn::make('model')
->label('Model')
->sortable(),
TextColumn::make('vehicleType.category_name')
->label('Type')
->sortable(),
IconColumn::make('doNotJudge')
->label('Judged?')
->sortable()
->boolean()
->falseIcon('heroicon-o-check-badge')
->trueIcon('heroicon-o-x-circle')
->trueColor('danger')
->falseColor('success'),
TextColumn::make('vehicleOwner.bidder_fname')
->label('First Name')
->sortable(),
TextColumn::make('vehicleOwner.bidder_lname')
->label('Last Name')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
])
->defaultSort('vehicleOwner.bidder_assigned_number');
}
public static function getRelations(): array
{
return [
RelationManagers\VehicleOwnerRelationManager::class,
RelationManagers\VehicleScoresRelationManager::class,
RelationManagers\VehicleTypeRelationManager::class,
RelationManagers\CarShowWinnerRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListVehicles::route('/'),
'create' => Pages\CreateVehicles::route('/create'),
'edit' => Pages\EditVehicles::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateVehicles extends CreateRecord
{
protected static string $resource = VehiclesResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditVehicles extends EditRecord
{
protected static string $resource = VehiclesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListVehicles extends ListRecords
{
protected static string $resource = VehiclesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,53 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class CarShowWinnerRelationManager extends RelationManager
{
protected static string $relationship = 'CarShowWinner';
protected static ?string $recordTitleAttribute = 'id';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,72 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\Bidders;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class VehicleOwnerRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleOwner';
protected static ?string $recordTitleAttribute = 'owner';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\Select::make('owner')
->label('Owner Assigned Number')
->required()
->searchable()
->options(
Bidders::orderBy('bidder_assigned_number')
->pluck('bidder_assigned_number', 'idbidders'
))
->createOptionForm([
Forms\Components\TextInput::make('bidder_fname')->label('First Name'),
Forms\Components\TextInput::make('bidder_lname')->label('Last Name'),
Forms\Components\TextInput::make('bidder_addr')->label('Address'),
Forms\Components\TextInput::make('bidder_city')->label('City'),
Forms\Components\TextInput::make('bidder_state')->label('State'),
Forms\Components\TextInput::make('bidder_zip')->label('Zip'),
Forms\Components\TextInput::make('bidder_phone')->label('Phone Number'),
Forms\Components\TextInput::make('bidder_email')->label('Email'),
Forms\Components\TextInput::make('bidder_assigned_number')->label('Assigned Number'),
]),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('bidder_fname')->label('First Name'),
Tables\Columns\TextColumn::make('bidder_lname')->label('Last Name'),
Tables\Columns\TextColumn::make('bidder_assigned_number')->label('Number'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,63 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\Vehicles;
use App\Models\Judges;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class VehicleScoresRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleScores';
protected static ?string $recordTitleAttribute = 'id';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\Select::make('judge')
->label('Judge')
->options(Judges::all()->pluck('judge_number', 'id'))
->searchable(),
Forms\Components\Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
Forms\Components\TextInput::make('overall_score')
->label('Overall Score'),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('judge'),
Tables\Columns\TextColumn::make('overall_score'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,59 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\CarShowCategory;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class VehicleTypeRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleType';
protected static ?string $recordTitleAttribute = 'id';
public function form(Schema $schema): Schema
{
return $schema
->components([
Forms\Components\Select::make('category_name')
->required()
->searchable()
->options(CarShowCategory::vehtype()->pluck('category_name', 'id'))
->createOptionForm([
Forms\Components\TextInput::make('category_name'),
Forms\Components\Toggle::make('vehicle_type')->inline(false),
]),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('category_name'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,104 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource\RelationManagers;
use App\Models\WinningBids;
use UnitEnum;
use BackedEnum;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use App\Models\Bidders;
use App\Models\Items;
use Filament\Forms\Components\Select;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
class WinningBidsResource extends Resource
{
protected static ?string $model = WinningBids::class;
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
public static function form(Schema $schema): Schema
{
return $schema
->components([
Select::make('winning_item_num')
->label('Item')
->options(Items::orderBy('item_assigned_num')->pluck('item_assigned_num', 'iditems'))
->searchable(),
Select::make('winning_bidder_num')
->label('Bidder')
->options(
Bidders::orderBy('bidder_assigned_number')
->pluck('bidder_assigned_number', 'idbidders')
)
->searchable(),
TextInput::make('winning_cost')
->label('Winning Bid')
->prefix('$')
->numeric(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('items.item_assigned_num')
->label('Item')
->sortable(),
TextColumn::make('items.item_desc')
->label('Item Description')
->limit(15),
TextColumn::make('bidders.bidder_assigned_number')
->label('Bidder Number')
->sortable(),
TextColumn::make('winning_cost')
->label('Winning Bid Amt')
->money('USD')
->sortable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
])
->defaultSort('items.item_assigned_num');
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListWinningBids::route('/'),
'create' => Pages\CreateWinningBids::route('/create'),
'edit' => Pages\EditWinningBids::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateWinningBids extends CreateRecord
{
protected static string $resource = WinningBidsResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditWinningBids extends EditRecord
{
protected static string $resource = WinningBidsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListWinningBids extends ListRecords
{
protected static string $resource = WinningBidsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Helpers;
class PhoneHelper
{
public static function format($phone)
{
$phone = preg_replace('/[^0-9]/', '', $phone);
if (strlen($phone) == 10) {
return preg_replace('/([0-9]{3})([0-9]{3})([0-9]{4})/', '$1-$2-$3', $phone);
}
return $phone;
}
}
+41
View File
@@ -490,6 +490,21 @@ class PagesController extends Controller
->get();
return view('carshowscores', ['carshowscore_results' => $carshowscore_results]);
}
public function showscoresbycar()
{
$carshowscore2_results = VehicleScores::with(['scoredVehicle'])
->groupBy('vehicle')
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
//->orderBy('scoredVehicle.vehicleOwner.bidder_assigned_number')
->orderByRaw('CAST((
SELECT owner
FROM vehicles
WHERE vehicles.id = vehicle_scores.vehicle
LIMIT 1
) AS UNSIGNED) ASC')
->get();
return view('carshowscores', ['carshowscore_results' => $carshowscore2_results]);
}
public function showcarlist()
{
$showcarlist_results = Bidders::has('vehicles')
@@ -500,4 +515,30 @@ class PagesController extends Controller
//dd($showcarlist_results);
return view('showcarlist', ['showcarlist_results' => $showcarlist_results]);
}
public function myWinnings(Request $request)
{
if (!$request->bidder_number) {
return view('mywinnings_form');
}
$bidder_number = $request->bidder_number;
$bidder = Bidders::where('bidder_assigned_number', $bidder_number)->first();
if (!$bidder) {
return view('mywinnings_form', ['error' => 'Bidder number not found.']);
}
$winnings = WinningBids::with('items')
->where('winning_bidder_num', $bidder->idbidders)
->get();
$total_cost = $winnings->sum('winning_cost');
return view('mywinnings_results', [
'bidder' => $bidder,
'winnings' => $winnings,
'total_cost' => $total_cost
]);
}
}
+11 -5
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Bidders extends Model
{
protected $table = 'bidders';
protected $primaryKey = 'idbidders';
protected $fillable = [
'bidder_fname',
'bidder_lname',
@@ -21,10 +24,13 @@ class Bidders extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function checkout()
{
@@ -38,6 +44,6 @@ class Bidders extends Model
public function vehicles()
{
return $this->hasMany('App\Models\Vehicles', 'owner', 'bidder_assigned_number');
return $this->hasMany(Vehicles::class, 'owner', 'bidder_assigned_number');
}
}
+17 -6
View File
@@ -7,22 +7,33 @@ use Illuminate\Database\Eloquent\Model;
class CarShowCategory extends Model
{
protected $table = 'car_show_categories';
protected static ?string $recordTitleAttribute = 'category_name';
protected $fillable = [
'category_name',
'vehicle_type'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'vehicle_type' => 'boolean',
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function vehicle()
{
return $this->hasMany('App\Models\Vehicles', 'id', 'type');
return $this->hasMany(Vehicles::class, 'type');
}
public function showWinner()
{
return $this->hasMany('App\Models\CarShowWinner', 'id', 'category');
return $this->hasMany(CarShowWinner::class, 'category');
}
public function scopeVehtype($query)
{
return $query->where('vehicle_type', 1)->orderBy('category_name');
}
}
+9 -5
View File
@@ -10,13 +10,17 @@ class CarShowWinner extends Model
protected $fillable = [
'vehicle',
'category',
'place'
'place',
'total_score'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function awardVehicle()
{
+13 -6
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Checkout extends Model
{
protected $table = 'checkout';
protected $primaryKey = 'checkout_id';
protected $fillable = [
'bidder_num',
'winnertotal',
@@ -18,18 +21,22 @@ class Checkout extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'winnertotal' => 'integer',
];
}
public function bidders()
{
return $this->belongsTo('App\Models\Bidders', 'bidder_num', 'idbidders');
return $this->belongsTo(Bidders::class, 'bidder_num', 'idbidders');
}
public function paymentMethod()
{
return $this->hasMany('App\Models\PaymentMethods', 'payment_method', 'pm_id');
return $this->hasMany(PaymentMethods::class, 'pm_id', 'payment_method');
}
}
+11 -5
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Items extends Model
{
protected $table = 'items';
protected $primaryKey = 'iditems';
protected $fillable = [
'item_desc',
'item_min_bid',
@@ -16,13 +19,16 @@ class Items extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function winningBids()
{
return $this->belongsTo('App\Models\WinningBids', 'iditems', 'winning_item_num');
return $this->belongsTo(WinningBids::class, 'iditems', 'winning_item_num');
}
}
+8 -5
View File
@@ -13,13 +13,16 @@ class Judges extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function vehicleScores()
{
return $this->hasMany('App\Models\VehicleScores', 'judge', 'id');
return $this->hasMany(VehicleScores::class, 'judge', 'id');
}
}
+11 -5
View File
@@ -7,19 +7,25 @@ use Illuminate\Database\Eloquent\Model;
class PaymentMethods extends Model
{
protected $table = 'payment_methods';
protected $primaryKey = 'pm_id';
protected $fillable = [
'pm_name',
'created_at',
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function checkout()
{
return $this->belongsTo('App\Models\Checkout', 'payment_method', 'pm_id');
return $this->belongsTo(Checkout::class, 'payment_method', 'pm_id');
}
}
+8 -5
View File
@@ -14,13 +14,16 @@ class PeoplesChoice extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function vehicles()
{
return $this->belongsTo('App\Models\Vehicles', 'vehicle', 'id');
return $this->belongsTo(Vehicles::class, 'vehicle', 'id');
}
}
+8 -5
View File
@@ -15,12 +15,15 @@ class VehicleScores extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function judge()
public function judges()
{
return $this->belongsTo('App\Models\Judges', 'judge', 'id');
}
+35 -30
View File
@@ -4,40 +4,45 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class vehicles extends Model
class Vehicles extends Model
{
protected $table = 'vehicles';
protected $fillable = [
'year',
'make',
'model',
'type',
'doNotJudge',
'owner'
];
protected $table = 'vehicles';
protected $dates = [
'created_at',
'updated_at'
];
protected $fillable = [
'year',
'make',
'model',
'type',
'doNotJudge',
'owner'
];
public function vehicleType()
{
return $this->belongsTo('App\Models\CarShowCategory', 'type', 'id');
}
protected function casts(): array
{
return [
'owner' => 'integer',
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function vehicleOwner()
{
return $this->belongsTo('App\Models\Bidders', 'owner', 'bidder_assigned_number');
}
public function vehicleType()
{
return $this->belongsTo(CarShowCategory::class, 'type', 'id');
}
public function vehicleScores()
{
return $this->hasMany('App\Models\VechicleScores', 'id', 'vehicle');
}
public function vehicleOwner()
{
return $this->belongsTo(Bidders::class, 'owner', 'bidder_assigned_number');
}
public function CarShowWinner()
{
return $this->belongsTo('App\Models\CarShowWinner', 'id', 'vehicle');
}
public function vehicleScores()
{
return $this->hasMany(VehicleScores::class, 'vehicle');
}
public function CarShowWinner()
{
return $this->belongsTo(CarShowWinner::class, 'vehicle');
}
}
+12 -6
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class WinningBids extends Model
{
protected $table = 'winning_bids';
protected $primaryKey = 'idwinning_bids';
protected $fillable = [
'winning_bidder_num',
'winning_cost',
@@ -15,18 +18,21 @@ class WinningBids extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function items()
{
return $this->hasMany('App\Models\Items', 'iditems', 'winning_item_num');
return $this->belongsTo(Items::class, 'winning_item_num', 'iditems');
}
public function bidders()
{
return $this->belongsTo('App\Models\Bidders', 'winning_bidder_num', 'idbidders');
return $this->belongsTo(Bidders::class, 'winning_bidder_num', 'idbidders');
}
}
@@ -0,0 +1,60 @@
<?php
namespace App\Providers\Filament;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\AuthenticateSession;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Pages;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\Widgets;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->brandName(env('APP_NAME'))
->homeUrl('/')
->colors([
'primary' => Color::Amber,
])
->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
->pages([
Pages\Dashboard::class,
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets')
->widgets([
Widgets\AccountWidget::class,
Widgets\FilamentInfoWidget::class,
])
->middleware([
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class,
]);
}
}
+27 -1
View File
@@ -4,8 +4,11 @@ namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Filament\Models\Contracts\FilamentUser;
use Filament\Models\Contracts\HasName;
use Filament\Panel;
class User extends Authenticatable
class User extends Authenticatable implements FilamentUser, HasName
{
use Notifiable;
@@ -26,4 +29,27 @@ class User extends Authenticatable
protected $hidden = [
'password', 'remember_token',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
public function canAccessPanel(Panel $panel): bool
{
return str_ends_with($this->email, '@tfmm.co');
}
public function getFilamentName(): string
{
return "{$this->name}";
}
}
+67 -63
View File
@@ -1,66 +1,70 @@
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0",
"barryvdh/laravel-snappy": "^0.4.1",
"laravel/framework": "5.6.*",
"laravel/tinker": "~1.0",
"niklasravnsborg/laravel-pdf": "^2.0"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.2",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~7.0"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^8.2",
"barryvdh/laravel-snappy": "^1.0",
"carlos-meneses/laravel-mpdf": "^2.1",
"filament/filament": "^5.0",
"laravel/framework": "^11.0",
"laravel/tinker": "^2.9",
"laravel/ui": "^4.2"
},
"files": [
"app/Helpers/BidderSelectList.php",
"app/Helpers/CheckoutBidderSelectList.php",
"app/Helpers/ItemSelectList.php",
"app/Helpers/PaymentMethodSelectList.php",
"app/Helpers/WinningBidderSelectList.php",
"app/Helpers/WinningBidSelectList.php"
]
},
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
}
"require-dev": {
"barryvdh/laravel-debugbar": "^3.8",
"filament/upgrade": "^5.0",
"filp/whoops": "^2.14",
"mockery/mockery": "^1.6",
"nunomaduro/collision": "^8.1",
"phpunit/phpunit": "^11.0"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Helpers/BidderSelectList.php",
"app/Helpers/CheckoutBidderSelectList.php",
"app/Helpers/ItemSelectList.php",
"app/Helpers/PaymentMethodSelectList.php",
"app/Helpers/WinningBidderSelectList.php",
"app/Helpers/WinningBidSelectList.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"@php artisan filament:upgrade"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover",
"@php artisan filament:upgrade"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
}
}
Generated
+7893 -1825
View File
File diff suppressed because it is too large Load Diff
+6558
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -175,7 +175,8 @@ return [
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
App\Providers\Filament\AdminPanelProvider::class,
App\Providers\RouteServiceProvider::class,
],
+14
View File
@@ -0,0 +1,14 @@
<?php
return [
/*
* Which column will be used as the order column.
*/
'order_column_name' => 'order_column',
/*
* Define if the models should sort when creating.
* When true, the package will automatically assign the highest order number to a new mode
*/
'sort_when_creating' => true,
];
+294
View File
@@ -0,0 +1,294 @@
<?php
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Http\Middleware\MirrorConfigToSubpackages;
use Filament\Pages;
use Filament\Widgets;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\AuthenticateSession;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
return [
/*
|--------------------------------------------------------------------------
| Filament Path
|--------------------------------------------------------------------------
|
| The default is `admin` but you can change it to whatever works best and
| doesn't conflict with the routing in your application.
|
*/
'path' => env('FILAMENT_PATH', 'admin'),
/*
|--------------------------------------------------------------------------
| Filament Core Path
|--------------------------------------------------------------------------
|
| This is the path which Filament will use to load its core routes and assets.
| You may change it if it conflicts with your other routes.
|
*/
'core_path' => env('FILAMENT_CORE_PATH', 'filament'),
/*
|--------------------------------------------------------------------------
| Filament Domain
|--------------------------------------------------------------------------
|
| You may change the domain where Filament should be active. If the domain
| is empty, all domains will be valid.
|
*/
'domain' => env('FILAMENT_DOMAIN'),
/*
|--------------------------------------------------------------------------
| Homepage URL
|--------------------------------------------------------------------------
|
| This is the URL that Filament will redirect the user to when they click
| on the sidebar's header.
|
*/
'home_url' => '/',
/*
|--------------------------------------------------------------------------
| Brand Name
|--------------------------------------------------------------------------
|
| This will be displayed on the login page and in the sidebar's header.
|
*/
'brand' => env('APP_NAME'),
/*
|--------------------------------------------------------------------------
| Auth
|--------------------------------------------------------------------------
|
| This is the configuration that Filament will use to handle authentication
| into the admin panel.
|
*/
'auth' => [
'guard' => env('FILAMENT_AUTH_GUARD', 'web'),
'pages' => [
'login' => \Filament\Http\Livewire\Auth\Login::class,
],
],
/*
|--------------------------------------------------------------------------
| Pages
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register pages from. You may also register pages here.
|
*/
'pages' => [
'namespace' => 'App\\Filament\\Pages',
'path' => app_path('Filament/Pages'),
'register' => [
Pages\Dashboard::class,
],
],
/*
|--------------------------------------------------------------------------
| Resources
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register resources from. You may also register resources here.
|
*/
'resources' => [
'namespace' => 'App\\Filament\\Resources',
'path' => app_path('Filament/Resources'),
'register' => [],
],
/*
|--------------------------------------------------------------------------
| Widgets
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register dashboard widgets from. You may also register widgets here.
|
*/
'widgets' => [
'namespace' => 'App\\Filament\\Widgets',
'path' => app_path('Filament/Widgets'),
'register' => [
Widgets\AccountWidget::class,
Widgets\FilamentInfoWidget::class,
],
],
/*
|--------------------------------------------------------------------------
| Livewire
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register Livewire components inside.
|
*/
'livewire' => [
'namespace' => 'App\\Filament',
'path' => app_path('Filament'),
],
/*
|--------------------------------------------------------------------------
| Dark mode
|--------------------------------------------------------------------------
|
| By enabling this feature, your users are able to select between a light
| and dark appearance for the admin panel, or let their system decide.
|
*/
'dark_mode' => false,
/*
|--------------------------------------------------------------------------
| Layout
|--------------------------------------------------------------------------
|
| This is the configuration for the general layout of the admin panel.
|
| You may configure the max content width from `xl` to `7xl`, or `full`
| for no max width.
|
*/
'layout' => [
'actions' => [
'modal' => [
'actions' => [
'alignment' => 'left',
],
],
],
'forms' => [
'actions' => [
'alignment' => 'left',
],
'have_inline_labels' => false,
],
'footer' => [
'should_show_logo' => true,
],
'max_content_width' => null,
'notifications' => [
'vertical_alignment' => 'top',
'alignment' => 'right',
],
'sidebar' => [
'is_collapsible_on_desktop' => false,
'groups' => [
'are_collapsible' => true,
],
'width' => null,
],
],
/*
|--------------------------------------------------------------------------
| Favicon
|--------------------------------------------------------------------------
|
| This is the path to the favicon used for pages in the admin panel.
|
*/
'favicon' => null,
/*
|--------------------------------------------------------------------------
| Default Avatar Provider
|--------------------------------------------------------------------------
|
| This is the service that will be used to retrieve default avatars if one
| has not been uploaded.
|
*/
'default_avatar_provider' => \Filament\AvatarProviders\UiAvatarsProvider::class,
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| This is the storage disk Filament will use to put media. You may use any
| of the disks defined in the `config/filesystems.php`.
|
*/
'default_filesystem_disk' => env('FILAMENT_FILESYSTEM_DRIVER', 'public'),
/*
|--------------------------------------------------------------------------
| Google Fonts
|--------------------------------------------------------------------------
|
| This is the URL for Google Fonts that should be loaded. You may use any
| font, or set to `null` to prevent any Google Fonts from loading.
|
| When using a custom font, you should also set the font family in your
| custom theme's `tailwind.config.js` file.
|
*/
'google_fonts' => 'https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap',
/*
|--------------------------------------------------------------------------
| Middleware
|--------------------------------------------------------------------------
|
| You may customise the middleware stack that Filament uses to handle
| requests.
|
*/
'middleware' => [
'auth' => [
Authenticate::class,
],
'base' => [
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DispatchServingFilamentEvent::class,
MirrorConfigToSubpackages::class,
],
],
];
+1 -1
View File
@@ -161,7 +161,7 @@ return [
|
*/
'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', null),
/*
|--------------------------------------------------------------------------
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up():
void {
Schema::table('car_show_winners', function (Blueprint $table) {
$table->integer('total_score')->after('vehicle');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down():
void {
Schema::table('car_show_winners', function (Blueprint $table) {
$table->dropColumn('total_score');
});
}
};
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->primary();
$table->foreignId('user_id')->nullable()->index();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable();
$table->longText('payload');
$table->integer('last_activity')->index();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('sessions');
}
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.fi-pagination-items,.fi-pagination-overview,.fi-pagination-records-per-page-select:not(.fi-compact){display:none}@supports (container-type:inline-size){.fi-pagination{container-type:inline-size}@container (min-width: 28rem){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@container (min-width: 56rem){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}@supports not (container-type:inline-size){@media (min-width:640px){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@media (min-width:768px){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{background-color:#333;border-radius:4px;color:#fff;font-size:14px;line-height:1.4;outline:0;position:relative;transition-property:transform,visibility,opacity;white-space:normal}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=light]{background-color:#fff;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;color:#26323d}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fi-sortable-ghost{opacity:.3}
+1
View File
@@ -0,0 +1 @@
@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-cyrillic-ext-wght-normal-IYF56FF6.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-cyrillic-wght-normal-JEOLYBOO.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-greek-ext-wght-normal-EOVOK2B5.woff2") format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-greek-wght-normal-IRE366VL.woff2") format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-vietnamese-wght-normal-CE5GGD3W.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-latin-ext-wght-normal-HA22NDSG.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-latin-wght-normal-NRMW37G5.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

Some files were not shown because too many files have changed in this diff Show More