mirror of
http://88.130.71.182:3000/BlitTech/badoHair_fe.git
synced 2026-06-13 10:41:11 +00:00
Update May 12 by Elvis
This commit is contained in:
61
lib/api/orders.ts
Normal file
61
lib/api/orders.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import { api, PaginatedResult } from "@/lib/api";
|
||||
|
||||
export interface OrderItem {
|
||||
product_id: string;
|
||||
quantity: number;
|
||||
}
|
||||
|
||||
export interface CreateOrderPayload {
|
||||
items: OrderItem[];
|
||||
notes?: string;
|
||||
shipping_address?: string;
|
||||
}
|
||||
|
||||
export interface OrderResult {
|
||||
order_id: string;
|
||||
amount: number;
|
||||
}
|
||||
|
||||
export interface MyOrderApi {
|
||||
id: string;
|
||||
status: string;
|
||||
total_amount: number;
|
||||
shipping_address: string | null;
|
||||
notes: string | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface AdminOrderApi {
|
||||
id: string;
|
||||
user_id: string | null;
|
||||
status: string;
|
||||
total_amount: number;
|
||||
shipping_address: string | null;
|
||||
notes: string | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
client_name: string | null;
|
||||
client_email: string | null;
|
||||
client_phone: string | null;
|
||||
}
|
||||
|
||||
export async function createOrder(payload: CreateOrderPayload): Promise<OrderResult> {
|
||||
return api.post<OrderResult>("/orders", payload);
|
||||
}
|
||||
|
||||
export async function listMyOrders(): Promise<PaginatedResult<MyOrderApi>> {
|
||||
return api.get<PaginatedResult<MyOrderApi>>("/orders?per_page=50");
|
||||
}
|
||||
|
||||
// ── Admin ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
export async function adminListOrders(status?: string): Promise<PaginatedResult<AdminOrderApi>> {
|
||||
const qs = status ? `?status=${status}&per_page=100` : "?per_page=100";
|
||||
return api.get<PaginatedResult<AdminOrderApi>>(`/admin/orders${qs}`);
|
||||
}
|
||||
|
||||
export async function adminUpdateOrderStatus(id: string, status: string): Promise<{ id: string; status: string }> {
|
||||
return api.patch<{ id: string; status: string }>(`/admin/orders/${id}/status`, { status });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user