mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 03:31:13 -05:00
feat: Implement all 7 phases
This commit is contained in:
@@ -5,6 +5,119 @@
|
||||
* Extracted from ModerationQueue.tsx to improve maintainability and reusability.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Photo display interface for moderation queue
|
||||
*/
|
||||
export interface PhotoForDisplay {
|
||||
id: string;
|
||||
url: string;
|
||||
cloudflare_image_url: string;
|
||||
filename: string;
|
||||
caption?: string | null;
|
||||
title?: string | null;
|
||||
date_taken?: string | null;
|
||||
order_index: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Location data interface
|
||||
*/
|
||||
export interface LocationData {
|
||||
id: string;
|
||||
city?: string | null;
|
||||
state_province?: string | null;
|
||||
country: string;
|
||||
formatted_address?: string | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Park submission item data
|
||||
*/
|
||||
export interface ParkItemData {
|
||||
park_id?: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
description?: string;
|
||||
park_type: string;
|
||||
status: string;
|
||||
location_id?: string;
|
||||
operator_id?: string;
|
||||
property_owner_id?: string;
|
||||
opening_date?: string;
|
||||
closing_date?: string;
|
||||
source_url?: string;
|
||||
submission_notes?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ride submission item data
|
||||
*/
|
||||
export interface RideItemData {
|
||||
ride_id?: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
park_id: string;
|
||||
manufacturer_id?: string;
|
||||
designer_id?: string;
|
||||
model_id?: string;
|
||||
ride_type: string;
|
||||
status: string;
|
||||
opening_date?: string;
|
||||
closing_date?: string;
|
||||
source_url?: string;
|
||||
submission_notes?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Company submission item data
|
||||
*/
|
||||
export interface CompanyItemData {
|
||||
company_id?: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
company_type: string;
|
||||
country?: string;
|
||||
founded_year?: number;
|
||||
source_url?: string;
|
||||
submission_notes?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ride model submission item data
|
||||
*/
|
||||
export interface RideModelItemData {
|
||||
model_id?: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
manufacturer_id: string;
|
||||
model_type: string;
|
||||
source_url?: string;
|
||||
submission_notes?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Photo submission item data
|
||||
*/
|
||||
export interface PhotoItemData {
|
||||
photo_url: string;
|
||||
cloudflare_image_id?: string;
|
||||
caption?: string;
|
||||
title?: string;
|
||||
order_index?: number;
|
||||
source_url?: string;
|
||||
submission_notes?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Union type for all submission item data
|
||||
*/
|
||||
export type SubmissionItemData =
|
||||
| ParkItemData
|
||||
| RideItemData
|
||||
| CompanyItemData
|
||||
| RideModelItemData
|
||||
| PhotoItemData;
|
||||
|
||||
/**
|
||||
* Represents a single item in the moderation queue.
|
||||
* Can be either a review or a content submission.
|
||||
@@ -79,8 +192,8 @@ export interface ModerationItem {
|
||||
submission_items?: Array<{
|
||||
id: string;
|
||||
item_type: string;
|
||||
item_data: any;
|
||||
original_data?: any;
|
||||
item_data: SubmissionItemData;
|
||||
original_data?: SubmissionItemData;
|
||||
status: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user