first commit
This commit is contained in:
+287
@@ -0,0 +1,287 @@
|
||||
// 用户角色类型
|
||||
export type UserRole = 'user' | 'interpreter' | 'admin'
|
||||
|
||||
// 用户相关类型
|
||||
export interface User {
|
||||
id: string
|
||||
name: string
|
||||
email: string
|
||||
phone: string
|
||||
avatar?: string
|
||||
balance: number
|
||||
status: 'active' | 'inactive' | 'suspended'
|
||||
role: UserRole
|
||||
totalOrders?: number
|
||||
completedOrders?: number
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
// 认证相关类型
|
||||
export interface AuthUser {
|
||||
id: string
|
||||
email: string
|
||||
name: string
|
||||
role: UserRole
|
||||
avatar?: string
|
||||
}
|
||||
|
||||
// 登录请求
|
||||
export interface LoginRequest {
|
||||
email: string
|
||||
password: string
|
||||
}
|
||||
|
||||
// 登录响应
|
||||
export interface LoginResponse {
|
||||
user: AuthUser
|
||||
token: string
|
||||
expiresIn: number
|
||||
}
|
||||
|
||||
// 注册请求
|
||||
export interface RegisterRequest {
|
||||
name: string
|
||||
email: string
|
||||
phone: string
|
||||
password: string
|
||||
role: UserRole
|
||||
verificationCode?: string
|
||||
}
|
||||
|
||||
// 口译员相关类型
|
||||
export interface Interpreter {
|
||||
id: string
|
||||
name: string
|
||||
email: string
|
||||
phone: string
|
||||
avatar?: string
|
||||
languages: string[]
|
||||
specialties: string[]
|
||||
rating: number
|
||||
totalOrders: number
|
||||
status: 'active' | 'inactive' | 'busy'
|
||||
hourlyRate: number
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
certifications?: string[]
|
||||
experience?: number
|
||||
}
|
||||
|
||||
// 订单相关类型
|
||||
export interface Order {
|
||||
id: string
|
||||
userId: string
|
||||
interpreterId?: string
|
||||
type: 'voice' | 'video' | 'on-site'
|
||||
status: 'pending' | 'confirmed' | 'in-progress' | 'completed' | 'cancelled'
|
||||
scheduledAt: string
|
||||
duration: number
|
||||
amount: number
|
||||
sourceLanguage: string
|
||||
targetLanguage: string
|
||||
description?: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
user?: User
|
||||
interpreter?: Interpreter
|
||||
rating?: number
|
||||
feedback?: string
|
||||
}
|
||||
|
||||
// 文档翻译类型
|
||||
export interface DocumentTranslation {
|
||||
id: string
|
||||
userId: string
|
||||
title: string
|
||||
sourceLanguage: string
|
||||
targetLanguage: string
|
||||
status: 'pending' | 'in-progress' | 'completed' | 'rejected'
|
||||
originalFile: string
|
||||
translatedFile?: string
|
||||
wordCount: number
|
||||
amount: number
|
||||
deadline: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
user?: User
|
||||
translator?: Interpreter
|
||||
}
|
||||
|
||||
// 充值记录类型
|
||||
export interface RechargeRecord {
|
||||
id: string
|
||||
userId: string
|
||||
amount: number
|
||||
method: 'alipay' | 'wechat' | 'bank_card' | 'admin'
|
||||
status: 'pending' | 'completed' | 'failed'
|
||||
transactionId?: string
|
||||
createdAt: string
|
||||
user?: User
|
||||
}
|
||||
|
||||
// 收费配置类型
|
||||
export interface PricingConfig {
|
||||
id: string
|
||||
type: 'voice' | 'video' | 'on-site' | 'document'
|
||||
timeSlot: 'peak' | 'normal' | 'off-peak'
|
||||
basePrice: number
|
||||
perMinutePrice?: number
|
||||
perWordPrice?: number
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
// 统计数据类型
|
||||
export interface DashboardStats {
|
||||
totalUsers: number
|
||||
newUsers: number
|
||||
voiceOrders: number
|
||||
videoOrders: number
|
||||
totalRevenue: number
|
||||
pendingOrders: number
|
||||
activeInterpreters: number
|
||||
completedTranslations: number
|
||||
}
|
||||
|
||||
// 财务统计类型
|
||||
export interface FinanceStats {
|
||||
totalRevenue: number
|
||||
monthlyRevenue: number
|
||||
platformBalance: number
|
||||
pendingWithdraw: number
|
||||
}
|
||||
|
||||
// 订单统计类型
|
||||
export interface OrderStats {
|
||||
pending: number
|
||||
confirmed: number
|
||||
inProgress: number
|
||||
completed: number
|
||||
cancelled: number
|
||||
todayRevenue: number
|
||||
}
|
||||
|
||||
export interface UserStats {
|
||||
total: number
|
||||
users: number
|
||||
interpreters: number
|
||||
admins: number
|
||||
active: number
|
||||
inactive: number
|
||||
suspended: number
|
||||
newThisMonth: number
|
||||
totalBalance: number
|
||||
}
|
||||
|
||||
export interface InterpreterStats {
|
||||
total: number
|
||||
online: number
|
||||
busy: number
|
||||
inactive: number
|
||||
averageRating: number
|
||||
averageHourlyRate: number
|
||||
}
|
||||
|
||||
export interface Transaction {
|
||||
id: string
|
||||
type: 'order_payment' | 'interpreter_payout' | 'platform_fee' | 'refund' | 'withdraw'
|
||||
amount: number
|
||||
fee: number
|
||||
status: 'completed' | 'pending' | 'failed'
|
||||
userName: string
|
||||
userType: string
|
||||
orderId?: string
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
export interface WithdrawalRequest {
|
||||
id: string
|
||||
interpreterId: string
|
||||
interpreterName: string
|
||||
interpreterAvatar?: string
|
||||
amount: number
|
||||
bankInfo: string
|
||||
status: 'pending' | 'approved' | 'rejected'
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
// 分页参数类型
|
||||
export interface PaginationParams {
|
||||
page: number
|
||||
limit: number
|
||||
total?: number
|
||||
}
|
||||
|
||||
// API响应类型
|
||||
export interface ApiResponse<T> {
|
||||
success: boolean
|
||||
data: T
|
||||
message?: string
|
||||
pagination?: PaginationParams
|
||||
}
|
||||
|
||||
// 筛选参数类型
|
||||
export interface FilterParams {
|
||||
search?: string
|
||||
status?: string
|
||||
type?: string
|
||||
dateRange?: string
|
||||
startDate?: string
|
||||
endDate?: string
|
||||
}
|
||||
|
||||
// 系统设置相关类型
|
||||
export interface SystemSettings {
|
||||
// 基础设置
|
||||
platformName: string
|
||||
customerServicePhone: string
|
||||
customerServiceEmail: string
|
||||
workingHours: string
|
||||
platformDescription: string
|
||||
maintenanceMode: boolean
|
||||
|
||||
// 费率设置
|
||||
platformFeeRate: number
|
||||
minimumOrderAmount: number
|
||||
maximumOrderAmount: number
|
||||
minimumWithdrawAmount: number
|
||||
serviceTypes: ServiceType[]
|
||||
|
||||
// 订单设置
|
||||
orderCancelTimeout: number
|
||||
reviewTimeLimit: number
|
||||
interpreterResponseTime: number
|
||||
advanceBookingTime: number
|
||||
allowCancellation: boolean
|
||||
requireDeposit: boolean
|
||||
autoAssignInterpreter: boolean
|
||||
|
||||
// 通知设置
|
||||
emailNotifications: NotificationSetting[]
|
||||
smsNotifications: NotificationSetting[]
|
||||
|
||||
// 安全设置
|
||||
passwordMinLength: number
|
||||
maxLoginAttempts: number
|
||||
lockoutDuration: number
|
||||
sessionTimeout: number
|
||||
requireEmailVerification: boolean
|
||||
requirePhoneVerification: boolean
|
||||
enableTwoFactorAuth: boolean
|
||||
}
|
||||
|
||||
export interface ServiceType {
|
||||
type: string
|
||||
name: string
|
||||
description: string
|
||||
basePrice: number
|
||||
pricePerMinute: number
|
||||
}
|
||||
|
||||
export interface NotificationSetting {
|
||||
type: string
|
||||
name: string
|
||||
description: string
|
||||
enabled: boolean
|
||||
}
|
||||
Reference in New Issue
Block a user