feat: Implement final type safety fixes

This commit is contained in:
gpt-engineer-app[bot]
2025-10-17 15:06:35 +00:00
parent 5466c60b84
commit 77deb62742
13 changed files with 85 additions and 33 deletions

View File

@@ -6,6 +6,11 @@
import type { ModerationItem, EntityFilter, StatusFilter } from '@/types/moderation';
interface SubmissionContent {
name?: string;
[key: string]: any;
}
/**
* Check if a submission matches the entity filter
*/
@@ -167,7 +172,7 @@ export function buildModerationItem(
display_name: profile.display_name,
avatar_url: profile.avatar_url,
} : undefined,
entity_name: entityName || (submission.content as any)?.name || 'Unknown',
entity_name: entityName || (submission.content as SubmissionContent)?.name || 'Unknown',
park_name: parkName,
reviewed_at: submission.reviewed_at || undefined,
reviewer_notes: submission.reviewer_notes || undefined,

View File

@@ -609,8 +609,16 @@ async function createCompany(
// Extract image assignments
const imageData = extractImageAssignments(resolvedData.images);
// Type guard for company type
type ValidCompanyType = 'manufacturer' | 'designer' | 'operator' | 'property_owner';
const validCompanyTypes: ValidCompanyType[] = ['manufacturer', 'designer', 'operator', 'property_owner'];
if (!validCompanyTypes.includes(companyType as ValidCompanyType)) {
throw new Error(`Invalid company type: ${companyType}`);
}
// Transform to database format
const companyData = { ...transformCompanyData(resolvedData, companyType as any), ...imageData };
const companyData = { ...transformCompanyData(resolvedData, companyType as ValidCompanyType), ...imageData };
const { data: company, error } = await supabase
.from('companies')
@@ -1062,12 +1070,18 @@ export async function editSubmissionItem(
}
}
// Type guard for submission with user_id
interface SubmissionWithUser {
user_id: string;
[key: string]: any;
}
// Log admin action
await supabase
.from('admin_audit_log')
.insert({
admin_user_id: userId,
target_user_id: (currentItem.submission as any).user_id,
target_user_id: (currentItem.submission as SubmissionWithUser).user_id,
action: 'edit_submission_item',
details: {
item_id: itemId,