Files
TheGame/packages/utils/schema/user-profile.graphql

42 lines
1.4 KiB
GraphQL

type Profile
@createModel(
accountRelation: SINGLE
description: "A model containing fields reprenting user profile-related data, such as name, bio, avatar image, personality type, and much more. Created by MetaFam for MetaGame"
) {
availabilityHoursPerWeek: Int @int(min: 0, max: 168)
avatar: ImageMetadata
backgroundImage: ImageMetadata
description: String @string(maxLength: 42000)
# an emoji isn't necessarily just one character depending on its complexity
emoji: String @string(maxLength: 20)
# pattern: "^(Pioneer|Settler|Town Planner)$"
explorerType: String @string(maxLength: 12)
# pattern: "^([wW]?|[uU]?|[bB]?|[rR]?|[gG]?){0,5}$"
fiveColorDisposition: String @string(maxLength: 5)
homeLocation: String @string(maxLength: 140)
name: String @string(maxLength: 150)
pronouns: String @string(maxLength: 420)
# pattern: "^[a-z0-9-_]+$"
username: String @string(maxLength: 420)
# e.g. America/Denver
timeZone: String @string(maxLength: 127)
websiteURL: String @string(maxLength: 240)
# Myers-Briggs Type Indicator
mbti: String @string(maxLength: 4)
enneagram: String @string(maxLength: 12)
}
type ImageMetadata {
url: String! @string(maxLength: 420)
mimeType: String! @string(maxLength: 50)
# in bytes
size: Int @int(min: 0)
# Dimensions for raster images
width: Int @int(min: 0)
height: Int @int(min: 0)
# For vector images
aspectRatio: Float @float(min: 0)
}