-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.graphql
101 lines (88 loc) · 2.11 KB
/
schema.graphql
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# =========== SaleCreated =================
type TicketSaleCreated @entity(immutable: true) {
id: ID!
creator: Bytes! # address
ticketSaleAddr: Bytes! # address
ticketAddr: Bytes! # address
blockNumber: BigInt!
blockTimestamp: BigInt!
}
# ======================================
type MintTicket @entity(immutable: true) {
id: ID!
owner: Bytes! # address
tokenId: BigInt! # uint256
blockNumber: BigInt!
blockTimestamp: BigInt!
transactionHash: Bytes!
}
# ================== Ticket ========================
type Ticket @entity {
id: ID!
address: Bytes!
sold: Sold!
promos: [Promo!]!
}
type TicketMetadata @entity(immutable: true) {
id: ID!
name: String!
description: String!
start_time: BigInt!
stream_link: String!
streamer_link: String!
image: String!
banner: String!
external_link: String!
}
# =======================================
type Stream @entity {
id: ID!
owner: Bytes!
saleAddress: Bytes!
ticketAddress: Bytes!
paymentTokenAddress: Bytes!
price: BigInt!
saleStartDate: BigInt!
saleEndDate: BigInt!
totalAmount: Int!
reservedAmount: Int! #updatable
metadata: TicketMetadata!
purchased: Boolean! #updatable
blockNumber: BigInt!
blockTimestamp: BigInt!
transactionHash: Bytes!
}
#========== Promo =====================
type Promo @entity {
id: ID!
marketer: Bytes!
tokenId: BigInt!
tickets: [Bytes!]!
ticketAddressStr: String!
tokenAddress: Bytes!
tokenUri: String!
metadata: PromoMetadata!
startDate: BigInt!
endDate: BigInt!
blockNumber: BigInt!
blockTimestamp: BigInt!
}
type PromoMetadata @entity {
id: ID!
name: String!
description: String!
cover: String!
shoppingLink: String!
}
# ============= Sold =================
type Sold @entity {
id: ID!
buyer: Bytes! # address
ticket: Ticket! @derivedFrom(field: "sold")
tokenId: BigInt! # uint256
price: BigInt! # uint256
ticketMetadata: TicketMetadata!
blockNumber: BigInt!
blockTimestamp: BigInt!
transactionHash: Bytes!
}