Files
landscape-template/api/functions/graphql/schema.graphql
2022-10-04 16:26:22 +03:00

602 lines
11 KiB
GraphQL

### This file was generated by Nexus Schema
### Do not make changes to this file directly
type Author {
avatar: String!
id: Int!
join_date: Date!
lightning_address: String
name: String!
}
type Award {
id: Int!
image: String!
project: Project!
title: String!
url: String!
}
interface BaseUser {
avatar: String!
bio: String
discord: String
github: String
id: Int!
in_tournament(id: Int!): Boolean!
jobTitle: String
join_date: Date!
lightning_address: String
linkedin: String
location: String
name: String!
projects: [Project!]!
role: String
roles: [MakerRole!]!
similar_makers: [User!]!
skills: [MakerSkill!]!
stories: [Story!]!
tournaments: [Tournament!]!
twitter: String
website: String
}
type Bounty implements PostBase {
applicants_count: Int!
applications: [BountyApplication!]!
author: Author!
body: String!
cover_image: String
createdAt: Date!
deadline: String!
excerpt: String!
id: Int!
is_published: Boolean
reward_amount: Int!
tags: [Tag!]!
title: String!
type: String!
updatedAt: Date!
votes_count: Int!
}
type BountyApplication {
author: Author!
date: String!
id: Int!
workplan: String!
}
type Capability {
icon: String!
id: Int!
title: String!
}
type Category {
apps_count: Int!
cover_image: String
icon: String
id: Int!
project: [Project!]!
title: String!
votes_sum: Int!
}
input CreateProjectInput {
capabilities: [Int!]!
category_id: Int!
cover_image: ImageInput!
description: String!
discord: String
github: String
hashtag: String!
id: Int
launch_status: ProjectLaunchStatusEnum!
lightning_address: String
members: [TeamMemberInput!]!
recruit_roles: [Int!]!
screenshots: [ImageInput!]!
slack: String
tagline: String!
telegram: String
thumbnail_image: ImageInput!
title: String!
tournaments: [Int!]!
twitter: String
website: String!
}
type CreateProjectResponse {
project: Project!
}
"""Date custom scalar type"""
scalar Date
type Donation {
amount: Int!
by: User
createdAt: Date!
id: Int!
paid: Boolean!
payment_hash: String!
payment_request: String!
}
type DonationsStats {
applications: String!
donations: String!
prizes: String!
touranments: String!
}
type GenericMakerRole {
icon: String!
id: Int!
title: String!
}
type Hackathon {
cover_image: String!
description: String!
end_date: Date!
id: Int!
location: String!
start_date: Date!
tags: [Tag!]!
title: String!
website: String!
}
input ImageInput {
id: String
name: String
url: String!
}
type LnurlDetails {
commentAllowed: Int
maxSendable: Int
metadata: String
minSendable: Int
}
type MakerRole {
icon: String!
id: Int!
level: RoleLevelEnum!
title: String!
}
input MakerRoleInput {
id: Int!
level: RoleLevelEnum!
}
type MakerSkill {
id: Int!
title: String!
}
input MakerSkillInput {
id: Int!
}
type Mutation {
confirmDonation(payment_request: String!, preimage: String!): Donation!
confirmVote(payment_request: String!, preimage: String!): Vote!
createProject(input: CreateProjectInput): CreateProjectResponse
createStory(data: StoryInputType): Story
deleteProject(id: Int!): Project
deleteStory(id: Int!): Story
donate(amount_in_sat: Int!): Donation!
registerInTournament(data: RegisterInTournamentInput, tournament_id: Int!): User
updateProfileDetails(data: ProfileDetailsInput): MyProfile
updateProfileRoles(data: ProfileRolesInput): MyProfile
updateProject(input: UpdateProjectInput): CreateProjectResponse
updateTournamentRegistration(data: UpdateTournamentRegistrationInput, tournament_id: Int!): ParticipationInfo
updateUserPreferences(userKeys: [UserKeyInputType!]): MyProfile!
vote(amount_in_sat: Int!, item_id: Int!, item_type: VOTE_ITEM_TYPE!): Vote!
}
type MyProfile implements BaseUser {
avatar: String!
bio: String
discord: String
email: String
github: String
id: Int!
in_tournament(id: Int!): Boolean!
jobTitle: String
join_date: Date!
lightning_address: String
linkedin: String
location: String
name: String!
nostr_prv_key: String
nostr_pub_key: String
projects: [Project!]!
role: String
roles: [MakerRole!]!
similar_makers: [User!]!
skills: [MakerSkill!]!
stories: [Story!]!
tournaments: [Tournament!]!
twitter: String
walletsKeys: [WalletKey!]!
website: String
}
enum POST_TYPE {
Bounty
Question
Story
}
type ParticipationInfo {
createdAt: Date!
email: String!
hacking_status: TournamentMakerHackingStatusEnum!
}
union Post = Bounty | Question | Story
interface PostBase {
body: String!
createdAt: Date!
excerpt: String!
id: Int!
is_published: Boolean
title: String!
updatedAt: Date!
votes_count: Int!
}
type PostComment {
author: Author!
body: String!
created_at: Date!
id: Int!
parentId: Int
votes_count: Int!
}
input ProfileDetailsInput {
avatar: ImageInput
bio: String
discord: String
email: String
github: String
jobTitle: String
lightning_address: String
linkedin: String
location: String
name: String
twitter: String
website: String
}
input ProfileRolesInput {
roles: [MakerRoleInput!]!
skills: [MakerSkillInput!]!
}
type Project {
awards: [Award!]!
capabilities: [Capability!]!
category: Category!
cover_image: String!
description: String!
discord: String
github: String
hashtag: String!
id: Int!
launch_status: ProjectLaunchStatusEnum!
lightning_address: String
lnurl_callback_url: String
members: [ProjectMember!]!
permissions: [ProjectPermissionEnum!]!
recruit_roles: [MakerRole!]!
screenshots: [String!]!
slack: String
stories: [Story!]!
tagline: String!
tags: [Tag!]!
telegram: String
thumbnail_image: String!
title: String!
tournaments: [Tournament!]!
twitter: String
votes_count: Int!
website: String!
}
enum ProjectLaunchStatusEnum {
Launched
WIP
}
type ProjectMember {
role: TEAM_MEMBER_ROLE!
user: User!
}
enum ProjectPermissionEnum {
DeleteProject
UpdateAdmins
UpdateInfo
UpdateMembers
}
type Query {
allCategories: [Category!]!
allProjects(skip: Int = 0, take: Int = 50): [Project!]!
checkValidProjectHashtag(hashtag: String!, projectId: Int): Boolean!
getAllCapabilities: [Capability!]!
getAllHackathons(sortBy: String, tag: Int): [Hackathon!]!
getAllMakersRoles: [GenericMakerRole!]!
getAllMakersSkills: [MakerSkill!]!
getCategory(id: Int!): Category!
getDonationsStats: DonationsStats!
getFeed(skip: Int = 0, sortBy: String, tag: Int = 0, take: Int = 10): [Post!]!
getLnurlDetailsForProject(project_id: Int!): LnurlDetails!
getMakersInTournament(openToConnect: Boolean, roleId: Int, search: String, skip: Int = 0, take: Int = 10, tournamentId: Int!): TournamentMakersResponse!
getMyDrafts(type: POST_TYPE!): [Post!]!
getPostById(id: Int!, type: POST_TYPE!): Post!
getProject(id: Int, tag: String): Project!
getProjectsInTournament(roleId: Int, search: String, skip: Int = 0, take: Int = 10, tournamentId: Int!): TournamentProjectsResponse!
getTournamentById(id: Int!): Tournament!
getTournamentToRegister: [Tournament!]!
getTrendingPosts: [Post!]!
hottestProjects(skip: Int = 0, take: Int = 50): [Project!]!
me: MyProfile
newProjects(skip: Int = 0, take: Int = 50): [Project!]!
officialTags: [Tag!]!
popularTags: [Tag!]!
profile(id: Int!): User
projectsByCategory(category_id: Int!, skip: Int = 0, take: Int = 10): [Project!]!
searchProjects(search: String!, skip: Int = 0, take: Int = 50): [Project!]!
searchUsers(value: String!): [User!]!
similarMakers(id: Int!): [User!]!
similarProjects(id: Int!): [Project!]!
tournamentParticipationInfo(tournamentId: Int!): ParticipationInfo
}
type Question implements PostBase {
author: Author!
body: String!
createdAt: Date!
excerpt: String!
id: Int!
is_published: Boolean
tags: [Tag!]!
title: String!
type: String!
updatedAt: Date!
votes_count: Int!
}
input RegisterInTournamentInput {
email: String!
hacking_status: TournamentMakerHackingStatusEnum!
}
enum RoleLevelEnum {
Advanced
Beginner
Hobbyist
Intermediate
Pro
}
type Story implements PostBase {
author: Author!
body: String!
comments: [PostComment!]!
comments_count: Int!
cover_image: String
createdAt: Date!
excerpt: String!
id: Int!
is_published: Boolean
project: Project
tags: [Tag!]!
title: String!
type: String!
updatedAt: Date!
votes_count: Int!
}
input StoryInputType {
body: String!
cover_image: ImageInput
id: Int
is_published: Boolean
project_id: Int
tags: [String!]!
title: String!
}
enum TEAM_MEMBER_ROLE {
Admin
Maker
Owner
}
type Tag {
description: String
icon: String
id: Int!
isOfficial: Boolean
title: String!
}
input TeamMemberInput {
id: Int!
role: TEAM_MEMBER_ROLE!
}
type Tournament {
cover_image: String!
description: String!
end_date: Date!
events: [TournamentEvent!]!
events_count: Int!
faqs: [TournamentFAQ!]!
id: Int!
judges: [TournamentJudge!]!
location: String!
makers_count: Int!
prizes: [TournamentPrize!]!
projects_count: Int!
start_date: Date!
thumbnail_image: String!
title: String!
website: String!
}
type TournamentEvent {
description: String!
ends_at: Date!
id: Int!
image: String!
links: [String!]!
location: String!
starts_at: Date!
title: String!
type: TournamentEventTypeEnum!
website: String!
}
enum TournamentEventTypeEnum {
IRLMeetup
OnlineMeetup
TwitterSpace
Workshop
}
type TournamentFAQ {
answer: String!
question: String!
}
type TournamentJudge {
avatar: String!
company: String!
name: String!
}
enum TournamentMakerHackingStatusEnum {
OpenToConnect
Solo
}
type TournamentMakersResponse {
hasNext: Boolean
hasPrev: Boolean
makers: [TournamentParticipant!]!
}
type TournamentParticipant {
hacking_status: TournamentMakerHackingStatusEnum!
is_registered: Boolean
user: User!
}
type TournamentPrize {
amount: String!
image: String!
title: String!
}
type TournamentProjectsResponse {
hasNext: Boolean
hasPrev: Boolean
projects: [Project!]!
}
input UpdateProjectInput {
capabilities: [Int!]!
category_id: Int!
cover_image: ImageInput!
description: String!
discord: String
github: String
hashtag: String!
id: Int
launch_status: ProjectLaunchStatusEnum!
lightning_address: String
members: [TeamMemberInput!]!
recruit_roles: [Int!]!
screenshots: [ImageInput!]!
slack: String
tagline: String!
telegram: String
thumbnail_image: ImageInput!
title: String!
tournaments: [Int!]!
twitter: String
website: String!
}
input UpdateTournamentRegistrationInput {
email: String
hacking_status: TournamentMakerHackingStatusEnum
}
type User implements BaseUser {
avatar: String!
bio: String
discord: String
github: String
id: Int!
in_tournament(id: Int!): Boolean!
jobTitle: String
join_date: Date!
lightning_address: String
linkedin: String
location: String
name: String!
projects: [Project!]!
role: String
roles: [MakerRole!]!
similar_makers: [User!]!
skills: [MakerSkill!]!
stories: [Story!]!
tournaments: [Tournament!]!
twitter: String
website: String
}
input UserKeyInputType {
key: String!
name: String!
}
enum VOTE_ITEM_TYPE {
Bounty
PostComment
Project
Question
Story
User
}
type Vote {
amount_in_sat: Int!
id: Int!
item_id: Int!
item_type: VOTE_ITEM_TYPE!
paid: Boolean!
payment_hash: String!
payment_request: String!
}
type WalletKey {
createdAt: Date!
is_current: Boolean!
key: String!
name: String!
}