mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-29 07:27:04 -05:00
Compare commits
2 Commits
8a2d347723
...
1f44e7afcb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f44e7afcb | ||
|
|
a6870b3acf |
@@ -33,6 +33,20 @@ const entityTypeColors = {
|
||||
company: 'bg-indigo-500/10 text-indigo-700 dark:text-indigo-400 border-indigo-500/20',
|
||||
};
|
||||
|
||||
const formatEntityType = (type: string): string => {
|
||||
return type
|
||||
.split('_')
|
||||
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
||||
.join(' ');
|
||||
};
|
||||
|
||||
const formatChangeType = (type: string): string => {
|
||||
return type
|
||||
.split('_')
|
||||
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
||||
.join(' ');
|
||||
};
|
||||
|
||||
export function RecentChangeCard({
|
||||
entityType,
|
||||
entityId,
|
||||
@@ -78,10 +92,10 @@ export function RecentChangeCard({
|
||||
<div className="space-y-2">
|
||||
<div className="flex items-center gap-2 flex-wrap">
|
||||
<Badge variant="outline" className={entityTypeColors[entityType]}>
|
||||
{entityType}
|
||||
{formatEntityType(entityType)}
|
||||
</Badge>
|
||||
<Badge variant="outline" className={changeTypeColors[changeType as keyof typeof changeTypeColors] || changeTypeColors.archived}>
|
||||
{changeType}
|
||||
{formatChangeType(changeType)}
|
||||
</Badge>
|
||||
</div>
|
||||
<h3 className="font-bold line-clamp-2 text-sm group-hover:text-primary transition-all duration-300 group-hover:drop-shadow-[0_0_8px_rgba(139,92,246,0.5)]">{entityName}</h3>
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
-- Backfill initial version records for existing entities
|
||||
-- This populates the Recent Changes tab with current data
|
||||
|
||||
-- 1. Backfill Park Versions (16 parks)
|
||||
INSERT INTO park_versions (
|
||||
park_id,
|
||||
version_number,
|
||||
created_by,
|
||||
change_type,
|
||||
change_reason,
|
||||
is_current,
|
||||
name,
|
||||
slug,
|
||||
description,
|
||||
park_type,
|
||||
status,
|
||||
location_id,
|
||||
operator_id,
|
||||
property_owner_id,
|
||||
opening_date,
|
||||
closing_date,
|
||||
opening_date_precision,
|
||||
closing_date_precision,
|
||||
website_url,
|
||||
phone,
|
||||
email,
|
||||
banner_image_url,
|
||||
banner_image_id,
|
||||
card_image_url,
|
||||
card_image_id
|
||||
)
|
||||
SELECT
|
||||
id,
|
||||
1,
|
||||
NULL,
|
||||
'created',
|
||||
'Initial version created during database backfill',
|
||||
true,
|
||||
name,
|
||||
slug,
|
||||
description,
|
||||
park_type,
|
||||
status,
|
||||
location_id,
|
||||
operator_id,
|
||||
property_owner_id,
|
||||
opening_date,
|
||||
closing_date,
|
||||
opening_date_precision,
|
||||
closing_date_precision,
|
||||
website_url,
|
||||
phone,
|
||||
email,
|
||||
banner_image_url,
|
||||
banner_image_id,
|
||||
card_image_url,
|
||||
card_image_id
|
||||
FROM parks
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM park_versions WHERE park_versions.park_id = parks.id
|
||||
);
|
||||
|
||||
-- 2. Backfill Ride Versions (20 rides) - with column mapping
|
||||
INSERT INTO ride_versions (
|
||||
ride_id,
|
||||
version_number,
|
||||
created_by,
|
||||
change_type,
|
||||
change_reason,
|
||||
is_current,
|
||||
name,
|
||||
slug,
|
||||
description,
|
||||
category,
|
||||
status,
|
||||
park_id,
|
||||
manufacturer_id,
|
||||
designer_id,
|
||||
ride_model_id,
|
||||
opening_date,
|
||||
closing_date,
|
||||
opening_date_precision,
|
||||
closing_date_precision,
|
||||
height_requirement_cm,
|
||||
max_speed_kmh,
|
||||
duration_seconds,
|
||||
capacity_per_hour,
|
||||
gforce_max,
|
||||
inversions_count,
|
||||
length_meters,
|
||||
height_meters,
|
||||
drop_meters,
|
||||
banner_image_url,
|
||||
banner_image_id,
|
||||
card_image_url,
|
||||
card_image_id,
|
||||
track_material
|
||||
)
|
||||
SELECT
|
||||
id,
|
||||
1,
|
||||
NULL,
|
||||
'created',
|
||||
'Initial version created during database backfill',
|
||||
true,
|
||||
name,
|
||||
slug,
|
||||
description,
|
||||
category,
|
||||
status,
|
||||
park_id,
|
||||
manufacturer_id,
|
||||
designer_id,
|
||||
ride_model_id,
|
||||
opening_date,
|
||||
closing_date,
|
||||
opening_date_precision,
|
||||
closing_date_precision,
|
||||
height_requirement,
|
||||
max_speed_kmh,
|
||||
duration_seconds,
|
||||
capacity_per_hour,
|
||||
max_g_force,
|
||||
inversions,
|
||||
length_meters,
|
||||
max_height_meters,
|
||||
drop_height_meters,
|
||||
banner_image_url,
|
||||
banner_image_id,
|
||||
card_image_url,
|
||||
card_image_id,
|
||||
track_material
|
||||
FROM rides
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM ride_versions WHERE ride_versions.ride_id = rides.id
|
||||
);
|
||||
|
||||
-- 3. Backfill Company Versions (12 companies)
|
||||
INSERT INTO company_versions (
|
||||
company_id,
|
||||
version_number,
|
||||
created_by,
|
||||
change_type,
|
||||
change_reason,
|
||||
is_current,
|
||||
name,
|
||||
slug,
|
||||
description,
|
||||
company_type,
|
||||
person_type,
|
||||
founded_year,
|
||||
founded_date,
|
||||
founded_date_precision,
|
||||
headquarters_location,
|
||||
website_url,
|
||||
logo_url,
|
||||
banner_image_url,
|
||||
banner_image_id,
|
||||
card_image_url,
|
||||
card_image_id
|
||||
)
|
||||
SELECT
|
||||
id,
|
||||
1,
|
||||
NULL,
|
||||
'created',
|
||||
'Initial version created during database backfill',
|
||||
true,
|
||||
name,
|
||||
slug,
|
||||
description,
|
||||
company_type,
|
||||
person_type,
|
||||
founded_year,
|
||||
founded_date,
|
||||
founded_date_precision,
|
||||
headquarters_location,
|
||||
website_url,
|
||||
logo_url,
|
||||
banner_image_url,
|
||||
banner_image_id,
|
||||
card_image_url,
|
||||
card_image_id
|
||||
FROM companies
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM company_versions WHERE company_versions.company_id = companies.id
|
||||
);
|
||||
Reference in New Issue
Block a user