120 lines
2.0 KiB
GraphQL
120 lines
2.0 KiB
GraphQL
enum Role {
|
|
OWNER
|
|
ADMIN
|
|
MEMBER
|
|
}
|
|
|
|
enum Status {
|
|
ACTIVE
|
|
INACTIVE
|
|
APPLIED
|
|
INVITED
|
|
REMOVED
|
|
}
|
|
|
|
enum FBType {
|
|
BOT
|
|
NET
|
|
ADVANCED
|
|
}
|
|
|
|
enum FBKind {
|
|
TRADER
|
|
INDICATOR
|
|
EXTRACTOR
|
|
PLOTTER
|
|
Trader
|
|
Trading
|
|
Indicator
|
|
Sensor
|
|
Plotter
|
|
}
|
|
|
|
type Team {
|
|
id: ID! @unique
|
|
name: String! @unique
|
|
slug: String! @unique
|
|
profile: TeamProfile
|
|
members: [TeamMembers!]! @relation (name: "TeamMembers", onDelete: SET_NULL)
|
|
owner: String!
|
|
wallet: Wallet
|
|
fb: [FinancialBeings!]! @relation (name: "TeamFinancialBeing", onDelete: SET_NULL)
|
|
status: [TeamStatus!]!
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type TeamProfile {
|
|
id: ID! @unique
|
|
description: String
|
|
motto: String
|
|
avatar: String
|
|
banner: String
|
|
createdAt: DateTime!
|
|
updatedAt: DateTime!
|
|
}
|
|
|
|
type TeamStatus {
|
|
id: ID! @unique
|
|
status: Status @Default(value: inactive)
|
|
reason: String
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type TeamMembers {
|
|
id: ID! @unique
|
|
member: Member @relation (name: "MemberOnTeam", onDelete: SET_NULL)
|
|
team: Team @relation (name: "TeamMembers", onDelete: SET_NULL)
|
|
role: Role @default(value: MEMBER)
|
|
status: [TeamMemberStatus!]!
|
|
email: String @unique
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type TeamMemberStatus {
|
|
id: ID! @unique
|
|
status: Status @Default(value: INACTIVE)
|
|
reason: String
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type Member {
|
|
id: ID! @unique
|
|
alias: String
|
|
teams: [TeamMembers!]! @relation (name: "MemberOnTeam", onDelete: SET_NULL)
|
|
authId: String! @unique
|
|
visible: Boolean! @default(value: true)
|
|
status: [MemberStatus!]!
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type MemberStatus {
|
|
id: ID! @unique
|
|
status: Status @Default(value: INACTIVE)
|
|
reason: String
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type Wallet {
|
|
id: ID! @unique
|
|
balance: Float
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type FinancialBeings {
|
|
id: ID! @unique
|
|
type: FBType
|
|
kind: FBKind
|
|
name: String!
|
|
slug: String!
|
|
avatar: String
|
|
team: Team @relation (name: "TeamFinancialBeing", onDelete: SET_NULL)
|
|
status: [FBStatus!]!
|
|
}
|
|
|
|
type FBStatus {
|
|
id: ID! @unique
|
|
status: Status @Default(value: inactive)
|
|
reason: String
|
|
createdAt: DateTime!
|
|
}
|