This commit is contained in:
2026-06-30 10:33:56 +08:00
commit 6e047dc0a5
607 changed files with 65966 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
export interface ApiResponse<T = unknown> {
code: number;
message: string;
data: T;
}
export interface PaginatedData<T> {
list: T[];
total: number;
page: number;
pageSize: number;
}
export interface JwtPayload {
sub: string;
actorType: string;
actorId: string;
clientApp: string;
}
export interface LoginResult {
accessToken: string;
refreshToken: string;
actorType: string;
actorId: string;
user?: Record<string, unknown>;
store?: Record<string, unknown>;
partner?: Record<string, unknown>;
}
+21
View File
@@ -0,0 +1,21 @@
export interface AppConfig {
mockSms: boolean;
mockSmsCode: string;
mockPay: boolean;
mockDeliveryAuto: boolean;
autoApproveStore: boolean;
}
export function loadAppConfig(env?: Record<string, string | undefined>): AppConfig {
const e =
env ??
(globalThis as { process?: { env: Record<string, string | undefined> } }).process?.env ??
{};
return {
mockSms: e.MOCK_SMS !== 'false',
mockSmsCode: e.MOCK_SMS_CODE ?? '123456',
mockPay: e.MOCK_PAY !== 'false',
mockDeliveryAuto: e.MOCK_DELIVERY_AUTO !== 'false',
autoApproveStore: e.AUTO_APPROVE_STORE !== 'false',
};
}
+79
View File
@@ -0,0 +1,79 @@
export enum ClientApp {
USER_MINI = 'USER_MINI',
USER_H5 = 'USER_H5',
PARTNER_MINI = 'PARTNER_MINI',
PARTNER_H5 = 'PARTNER_H5',
HQ_MINI = 'HQ_MINI',
SHOP_H5 = 'SHOP_H5',
}
export enum ActorType {
USER = 'USER',
STORE = 'STORE',
PARTNER = 'PARTNER',
HQ = 'HQ',
}
export enum SmsScene {
USER_LOGIN = 'USER_LOGIN',
STORE_LOGIN = 'STORE_LOGIN',
PARTNER_LOGIN = 'PARTNER_LOGIN',
HQ_LOGIN = 'HQ_LOGIN',
BIND_PHONE = 'BIND_PHONE',
PARTNER_STAFF_ADD = 'PARTNER_STAFF_ADD',
}
export enum OrderStatus {
PENDING_PAY = 'PENDING_PAY',
PENDING_SHIP = 'PENDING_SHIP',
OUT_WAREHOUSE = 'OUT_WAREHOUSE',
SHIPPING = 'SHIPPING',
PENDING_RECEIVE = 'PENDING_RECEIVE',
COMPLETED = 'COMPLETED',
CANCELLED = 'CANCELLED',
REFUNDING = 'REFUNDING',
REFUNDED = 'REFUNDED',
}
export enum OrderTab {
ALL = 'all',
PENDING_PAY = 'pending_pay',
PENDING_SHIP = 'pending_ship',
PENDING_RECEIVE = 'pending_receive',
COMPLETED = 'completed',
}
export enum DeliveryType {
LOCAL = 'LOCAL',
CROSS_CITY = 'CROSS_CITY',
}
export enum AromaType {
QINGXIANG = 'QINGXIANG',
JIANGXIANG = 'JIANGXIANG',
NONGXIANG = 'NONGXIANG',
}
export enum StoreStatus {
OPEN = 'OPEN',
PAUSED = 'PAUSED',
CLOSED = 'CLOSED',
}
export enum BenefitCouponStatus {
ACTIVE = 'ACTIVE',
USED_UP = 'USED_UP',
VOID = 'VOID',
}
export const CLIENT_APP_ACTOR_MAP: Record<ClientApp, ActorType> = {
[ClientApp.USER_MINI]: ActorType.USER,
[ClientApp.USER_H5]: ActorType.USER,
[ClientApp.PARTNER_MINI]: ActorType.PARTNER,
[ClientApp.PARTNER_H5]: ActorType.PARTNER,
[ClientApp.HQ_MINI]: ActorType.HQ,
[ClientApp.SHOP_H5]: ActorType.STORE,
};
export const REDEEM_MAX_AMOUNT = 500;
export const REDEEM_TOKEN_TTL_SECONDS = 300;
+3
View File
@@ -0,0 +1,3 @@
export * from './enums';
export * from './api';
export * from './config';