feat: add advanced analytics and territory management system

- Add comprehensive analytics components with export functionality
- Implement territory management with manager performance tracking
- Add seatmap components for venue layout management
- Create customer management features with modal interface
- Add advanced hooks for dashboard flags and territory data
- Implement seat selection and venue management utilities
- Add type definitions for ticketing and seatmap systems

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-08-26 09:25:10 -06:00
parent d5c3953888
commit aa81eb5adb
438 changed files with 90509 additions and 2787 deletions

View File

@@ -4,7 +4,8 @@ import { MOCK_USERS } from '../types/auth';
import {
MOCK_EVENTS,
MOCK_TICKET_TYPES,
DEFAULT_FEE_STRUCTURE
DEFAULT_FEE_STRUCTURE,
type EventLite
} from '../types/business';
@@ -21,6 +22,18 @@ import type { Order, ScanStatus } from '../types/business';
const DomainShowcase: React.FC = () => {
const [currentUser] = useState(MOCK_USERS[1]); // Organizer user
// Create example EventLite objects from MOCK_EVENTS
const exampleEvents: EventLite[] = MOCK_EVENTS.map((event) => ({
id: event.id,
orgId: event.organizationId,
name: event.title,
startAt: event.date,
endAt: event.date, // Using same date for end time since MOCK_EVENTS doesn't have endAt
venue: event.venue,
territoryId: event.territoryId,
status: event.status === 'published' ? 'published' : event.status === 'draft' ? 'draft' : 'archived'
}));
const [scanStatuses, setScanStatuses] = useState<ScanStatus[]>([
{
isValid: true,
@@ -127,14 +140,11 @@ const DomainShowcase: React.FC = () => {
Display event information with role-based actions and glassmorphism styling
</p>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
{MOCK_EVENTS.map((event) => (
{exampleEvents.map((event) => (
<EventCard
key={event.id}
event={event}
{...(currentUser && { currentUser })}
onView={(id) => handleEventAction('view', id)}
onEdit={(id) => handleEventAction('edit', id)}
onManage={(id) => handleEventAction('manage', id)}
onHover={(eventId: string) => handleEventAction('hover', eventId)}
/>
))}
</div>