重构项目结构,将数据层集中在 lib 包中;resource 类型更新,支持多个子套餐类型分别表示;新增长效套餐的购买流程,以及已购查询功能
This commit is contained in:
2
src/lib/models/index.ts
Normal file
2
src/lib/models/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from './models'
|
||||
export * from './resource'
|
||||
100
src/lib/models/models.ts
Normal file
100
src/lib/models/models.ts
Normal file
@@ -0,0 +1,100 @@
|
||||
import {Resource} from '@/lib/models'
|
||||
|
||||
export type User = {
|
||||
id: number
|
||||
admin_id: number
|
||||
phone: string
|
||||
username: string
|
||||
email: string
|
||||
name: string
|
||||
avatar: string
|
||||
status: number
|
||||
balance: number
|
||||
id_type: number
|
||||
id_no: string
|
||||
id_token: string
|
||||
contact_qq: string
|
||||
contact_wechat: string
|
||||
last_login: Date
|
||||
last_login_host: string
|
||||
last_login_agent: string
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
|
||||
export type Bill = {
|
||||
id: number
|
||||
user_id: number
|
||||
trade_id: number
|
||||
refund_id: number
|
||||
resource_id: number
|
||||
bill_no: string
|
||||
info: string
|
||||
type: number
|
||||
amount: number
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
trade: Trade
|
||||
refund: Refund
|
||||
resource: Resource
|
||||
}
|
||||
|
||||
export type Trade = {
|
||||
id: number
|
||||
user_id: number
|
||||
inner_no: string
|
||||
outer_no: string
|
||||
type: number
|
||||
subject: string
|
||||
remark: string
|
||||
amount: number
|
||||
payment: number
|
||||
method: number
|
||||
status: number
|
||||
paid_at: Date
|
||||
cancel_at: Date
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
|
||||
export type Refund = {
|
||||
id: number
|
||||
product_id: number
|
||||
trade_id: number
|
||||
amount: number
|
||||
reason: string
|
||||
status: number
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
|
||||
export type Channel = {
|
||||
id: number
|
||||
user_id: number
|
||||
proxy_id: number
|
||||
node_id: number
|
||||
proxy_host: string
|
||||
proxy_port: number
|
||||
user_host: string
|
||||
node_host: string
|
||||
auth_ip: boolean
|
||||
auth_pass: boolean
|
||||
protocol: number
|
||||
username: string
|
||||
password: string
|
||||
expiration: Date
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
|
||||
export type Announcement = {
|
||||
id: number
|
||||
title: string
|
||||
content: string
|
||||
type: number
|
||||
status: number
|
||||
pin: boolean
|
||||
sort: number
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
47
src/lib/models/resource.ts
Normal file
47
src/lib/models/resource.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
type ResourceShort = {
|
||||
id: number
|
||||
resource_id: number
|
||||
type: number
|
||||
live: number
|
||||
expire: Date
|
||||
quota: number
|
||||
used: number
|
||||
daily_limit: number
|
||||
daily_used: number
|
||||
daily_last: Date
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
|
||||
type ResourceLong = {
|
||||
id: number
|
||||
resource_id: number
|
||||
type: number
|
||||
live: number
|
||||
expire: Date
|
||||
quota: number
|
||||
used: number
|
||||
daily_limit: number
|
||||
daily_used: number
|
||||
daily_last: Date
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
}
|
||||
|
||||
export type Resource<T extends 1 | 2 = 1 | 2> = {
|
||||
id: number
|
||||
user_id: number
|
||||
resource_no: string
|
||||
active: boolean
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
} & (
|
||||
T extends 1 ? {
|
||||
type: 1
|
||||
short: ResourceShort
|
||||
} :
|
||||
T extends 2 ? {
|
||||
type: 2
|
||||
long: ResourceLong
|
||||
} : {}
|
||||
)
|
||||
Reference in New Issue
Block a user