Complete super admin panel with CRUD, bookings, profile, and dev API proxy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-21 14:20:52 +03:30
co-authored by Cursor
parent 03f3994121
commit 4bc6c003f3
31 changed files with 1508 additions and 43 deletions
+99
View File
@@ -0,0 +1,99 @@
export type UserRole = 'customer' | 'business_owner' | 'admin';
export type User = {
id: string;
mobile: string;
fullName: string | null;
role: UserRole;
isActive: boolean;
createdAt?: string;
updatedAt?: string;
};
export type BusinessCategory = {
id: string;
slug: string;
title: string;
isActive: boolean;
createdAt?: string;
updatedAt?: string;
};
export type Business = {
id: string;
title: string;
slug: string;
description: string | null;
contactPhone: string | null;
address: string | null;
latitude: number | null;
longitude: number | null;
isActive: boolean;
categoryId: string;
ownerId: string | null;
category?: BusinessCategory;
owner?: User | null;
createdAt?: string;
updatedAt?: string;
};
export type CreateBusinessPayload = {
title: string;
slug: string;
categoryId: string;
description?: string;
contactPhone?: string;
address?: string;
latitude?: number;
longitude?: number;
isActive?: boolean;
};
export type UpdateBusinessPayload = Partial<CreateBusinessPayload> & {
description?: string | null;
contactPhone?: string | null;
address?: string | null;
latitude?: number | null;
longitude?: number | null;
ownerId?: string | null;
};
export type CreateCategoryPayload = {
title: string;
slug: string;
isActive?: boolean;
};
export type UpdateCategoryPayload = Partial<CreateCategoryPayload>;
export type UpdateUserPayload = {
fullName?: string | null;
role?: UserRole;
isActive?: boolean;
};
export type AssignOwnerPayload = {
mobile: string;
fullName?: string | null;
};
export type BookingStatus =
| 'pending'
| 'confirmed'
| 'cancelled'
| 'completed';
export type Booking = {
id: string;
customerId: string;
businessId: string;
businessServiceId: string;
scheduledAt: string;
status: BookingStatus;
note: string | null;
customer?: User;
business?: Business;
businessService?: {
serviceTemplate?: { title: string };
};
};