mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 09:11:12 -05:00
Fix build errors and complete transformation
This commit is contained in:
@@ -103,28 +103,113 @@ export async function fetchSystemActivities(
|
||||
): Promise<SystemActivity[]> {
|
||||
const activities: SystemActivity[] = [];
|
||||
|
||||
// Fetch entity versions (entity changes)
|
||||
// Use simplified query without foreign key join - we'll fetch profiles separately
|
||||
const { data: versions, error: versionsError } = await supabase
|
||||
.from('entity_versions')
|
||||
.select('id, entity_type, entity_id, version_number, version_data, changed_by, changed_at, change_type, change_reason')
|
||||
.eq('is_current', true)
|
||||
.order('changed_at', { ascending: false })
|
||||
.limit(limit * 2); // Fetch more to account for filtering
|
||||
// Fetch entity versions from relational version tables
|
||||
// Query all four version tables in parallel for better performance
|
||||
const versionQueries = [
|
||||
supabase
|
||||
.from('park_versions')
|
||||
.select('version_id, park_id, version_number, name, created_by, created_at, change_type, change_reason, is_current')
|
||||
.eq('is_current', true)
|
||||
.order('created_at', { ascending: false })
|
||||
.limit(Math.ceil(limit / 2)),
|
||||
supabase
|
||||
.from('ride_versions')
|
||||
.select('version_id, ride_id, version_number, name, created_by, created_at, change_type, change_reason, is_current')
|
||||
.eq('is_current', true)
|
||||
.order('created_at', { ascending: false })
|
||||
.limit(Math.ceil(limit / 2)),
|
||||
supabase
|
||||
.from('company_versions')
|
||||
.select('version_id, company_id, version_number, name, created_by, created_at, change_type, change_reason, is_current')
|
||||
.eq('is_current', true)
|
||||
.order('created_at', { ascending: false })
|
||||
.limit(Math.ceil(limit / 4)),
|
||||
supabase
|
||||
.from('ride_model_versions')
|
||||
.select('version_id, ride_model_id, version_number, name, created_by, created_at, change_type, change_reason, is_current')
|
||||
.eq('is_current', true)
|
||||
.order('created_at', { ascending: false })
|
||||
.limit(Math.ceil(limit / 4)),
|
||||
];
|
||||
|
||||
if (!versionsError && versions) {
|
||||
for (const version of versions) {
|
||||
const versionData = version.version_data as any;
|
||||
const [parkVersions, rideVersions, companyVersions, modelVersions] = await Promise.all(versionQueries);
|
||||
|
||||
// Process park versions
|
||||
if (!parkVersions.error && parkVersions.data) {
|
||||
for (const version of parkVersions.data) {
|
||||
activities.push({
|
||||
id: version.id,
|
||||
id: version.version_id,
|
||||
type: 'entity_change',
|
||||
timestamp: version.changed_at,
|
||||
actor_id: version.changed_by || null,
|
||||
action: `${version.change_type} ${version.entity_type}`,
|
||||
timestamp: version.created_at,
|
||||
actor_id: version.created_by || null,
|
||||
action: `${version.change_type} park`,
|
||||
details: {
|
||||
entity_type: version.entity_type,
|
||||
entity_id: version.entity_id,
|
||||
entity_name: versionData?.name || versionData?.title,
|
||||
entity_type: 'park',
|
||||
entity_id: version.park_id,
|
||||
entity_name: version.name,
|
||||
change_type: version.change_type,
|
||||
change_reason: version.change_reason,
|
||||
version_number: version.version_number,
|
||||
} as EntityChangeDetails,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Process ride versions
|
||||
if (!rideVersions.error && rideVersions.data) {
|
||||
for (const version of rideVersions.data) {
|
||||
activities.push({
|
||||
id: version.version_id,
|
||||
type: 'entity_change',
|
||||
timestamp: version.created_at,
|
||||
actor_id: version.created_by || null,
|
||||
action: `${version.change_type} ride`,
|
||||
details: {
|
||||
entity_type: 'ride',
|
||||
entity_id: version.ride_id,
|
||||
entity_name: version.name,
|
||||
change_type: version.change_type,
|
||||
change_reason: version.change_reason,
|
||||
version_number: version.version_number,
|
||||
} as EntityChangeDetails,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Process company versions
|
||||
if (!companyVersions.error && companyVersions.data) {
|
||||
for (const version of companyVersions.data) {
|
||||
activities.push({
|
||||
id: version.version_id,
|
||||
type: 'entity_change',
|
||||
timestamp: version.created_at,
|
||||
actor_id: version.created_by || null,
|
||||
action: `${version.change_type} company`,
|
||||
details: {
|
||||
entity_type: 'company',
|
||||
entity_id: version.company_id,
|
||||
entity_name: version.name,
|
||||
change_type: version.change_type,
|
||||
change_reason: version.change_reason,
|
||||
version_number: version.version_number,
|
||||
} as EntityChangeDetails,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Process ride model versions
|
||||
if (!modelVersions.error && modelVersions.data) {
|
||||
for (const version of modelVersions.data) {
|
||||
activities.push({
|
||||
id: version.version_id,
|
||||
type: 'entity_change',
|
||||
timestamp: version.created_at,
|
||||
actor_id: version.created_by || null,
|
||||
action: `${version.change_type} ride_model`,
|
||||
details: {
|
||||
entity_type: 'ride_model',
|
||||
entity_id: version.ride_model_id,
|
||||
entity_name: version.name,
|
||||
change_type: version.change_type,
|
||||
change_reason: version.change_reason,
|
||||
version_number: version.version_number,
|
||||
|
||||
Reference in New Issue
Block a user