-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathbase.ts
More file actions
71 lines (67 loc) · 2.88 KB
/
base.ts
File metadata and controls
71 lines (67 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import type { DataType } from '../core/model'
import type {
AnyTable,
AnyTypedFieldColumn,
WithHasDefaultValue,
WithIsRequired,
} from '../core/table'
export type AnyUserTable = AnyTable<{
columns: {
id: WithHasDefaultValue<WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>>
name: AnyTypedFieldColumn<typeof DataType.STRING>
email: AnyTypedFieldColumn<typeof DataType.STRING>
emailVerified: AnyTypedFieldColumn<typeof DataType.BOOLEAN>
image: AnyTypedFieldColumn<typeof DataType.STRING>
}
relations: {}
primaryFields: ['id']
uniqueFields: (['id'] | ['email'])[]
}>
export type AnySessionTable = AnyTable<{
columns: {
id: WithHasDefaultValue<WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>>
expiredAt: WithIsRequired<AnyTypedFieldColumn<typeof DataType.DATETIME>>
token: WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>
ipAddress: AnyTypedFieldColumn<typeof DataType.STRING>
userAgent: AnyTypedFieldColumn<typeof DataType.STRING>
userId: WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>
}
relations: {}
primaryFields: ['id']
uniqueFields: any
}>
export type AnyAccountTable = AnyTable<{
columns: {
id: WithHasDefaultValue<WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>>
// Account ID is a unique identifier for the account (e.g., Google ID, Facebook ID, User ID)
accountId: WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>
// Provider ID is the identifier for the provider (e.g., google, facebook, credentials)
provider: WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>
// User ID is the identifier for the user in the system
userId: WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>
idToken: AnyTypedFieldColumn<typeof DataType.STRING>
accessToken: AnyTypedFieldColumn<typeof DataType.STRING>
refreshToken: AnyTypedFieldColumn<typeof DataType.STRING>
accessTokenExpiredAt: AnyTypedFieldColumn<typeof DataType.DATETIME>
refreshTokenExpiredAt: AnyTypedFieldColumn<typeof DataType.DATETIME>
scope: AnyTypedFieldColumn<typeof DataType.STRING>
// Password is used for email and password authentication
password: AnyTypedFieldColumn<typeof DataType.STRING>
}
relations: {}
primaryFields: ['id']
uniqueFields: (['id'] | ['userId', 'provider'])[]
}>
export type AnyVerificationTable = AnyTable<{
columns: {
id: WithHasDefaultValue<WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>>
identifier: WithIsRequired<AnyTypedFieldColumn<typeof DataType.STRING>>
value: AnyTypedFieldColumn<typeof DataType.STRING>
userId: AnyTypedFieldColumn<typeof DataType.STRING>
expiredAt: WithIsRequired<AnyTypedFieldColumn<typeof DataType.DATETIME>>
createdAt: WithHasDefaultValue<WithIsRequired<AnyTypedFieldColumn<typeof DataType.DATETIME>>>
}
relations: {}
primaryFields: ['id']
uniqueFields: any
}>