Files
Superalgos/api/database/datamodel.graphql
T

98 lines
1.7 KiB
GraphQL

enum Role {
OWNER
ADMIN
MEMBER
}
enum Status {
ACTIVE
INACTIVE
APPLY
INVITE
}
enum FBType {
BOT
NET
ADVANCED
}
enum FBKind {
TRADER
INDICATOR
EXTRACTOR
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 {
description: String
motto: String
avatar: String
banner: String
updatedAt: DateTime!
createdAt: DateTime!
}
type TeamStatus {
status: Status @Default(value: inactive)
reason: String
createdAt: DateTime!
}
type TeamMembers {
member: Member @relation (name: "MemberOnTeam", onDelete: SET_NULL)
team: Team @relation (name: "TeamMembers", onDelete: SET_NULL)
role: Role @default(value: MEMBER)
status: [MemberStatus!]!
updatedAt: DateTime!
}
type Member {
id: ID! @unique
alias: String
team: TeamMembers @relation (name: "MemberOnTeam", onDelete: SET_NULL)
authId: String! @unique
visible: Boolean! @default(value: true)
createdAt: DateTime!
}
type MemberStatus {
status: Status @Default(value: inactive)
reason: String
createdAt: DateTime!
}
type Wallet {
balance: Float
updatedAt: DateTime!
}
type FinancialBeings {
id: ID! @unique
type: FBType
kind: FBKind
team: Team @relation (name: "TeamFinancialBeing", onDelete: SET_NULL)
status: [FBStatus!]!
updatedAt: DateTime!
createdAt: DateTime!
}
type FBStatus {
status: Status @Default(value: inactive)
reason: String
createdAt: DateTime!
}