Add bio field to user model and update related components: Enhance leaderboard and profile features by including a bio field in user data. Update API routes, UI components, and validation logic to support bio input and display, improving user profiles and leaderboard entries.

This commit is contained in:
Julien Froidefond
2025-12-09 22:00:19 +01:00
parent 16b0437ecb
commit 3a0dd57bb6
13 changed files with 147 additions and 24 deletions

View File

@@ -57,6 +57,7 @@ export type UserMinAggregateOutputType = {
xp: number | null
maxXp: number | null
avatar: string | null
bio: string | null
createdAt: Date | null
updatedAt: Date | null
}
@@ -74,6 +75,7 @@ export type UserMaxAggregateOutputType = {
xp: number | null
maxXp: number | null
avatar: string | null
bio: string | null
createdAt: Date | null
updatedAt: Date | null
}
@@ -91,6 +93,7 @@ export type UserCountAggregateOutputType = {
xp: number
maxXp: number
avatar: number
bio: number
createdAt: number
updatedAt: number
_all: number
@@ -128,6 +131,7 @@ export type UserMinAggregateInputType = {
xp?: true
maxXp?: true
avatar?: true
bio?: true
createdAt?: true
updatedAt?: true
}
@@ -145,6 +149,7 @@ export type UserMaxAggregateInputType = {
xp?: true
maxXp?: true
avatar?: true
bio?: true
createdAt?: true
updatedAt?: true
}
@@ -162,6 +167,7 @@ export type UserCountAggregateInputType = {
xp?: true
maxXp?: true
avatar?: true
bio?: true
createdAt?: true
updatedAt?: true
_all?: true
@@ -266,6 +272,7 @@ export type UserGroupByOutputType = {
xp: number
maxXp: number
avatar: string | null
bio: string | null
createdAt: Date
updatedAt: Date
_count: UserCountAggregateOutputType | null
@@ -306,6 +313,7 @@ export type UserWhereInput = {
xp?: Prisma.IntFilter<"User"> | number
maxXp?: Prisma.IntFilter<"User"> | number
avatar?: Prisma.StringNullableFilter<"User"> | string | null
bio?: Prisma.StringNullableFilter<"User"> | string | null
createdAt?: Prisma.DateTimeFilter<"User"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
@@ -325,6 +333,7 @@ export type UserOrderByWithRelationInput = {
xp?: Prisma.SortOrder
maxXp?: Prisma.SortOrder
avatar?: Prisma.SortOrderInput | Prisma.SortOrder
bio?: Prisma.SortOrderInput | Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
preferences?: Prisma.UserPreferencesOrderByWithRelationInput
@@ -347,6 +356,7 @@ export type UserWhereUniqueInput = Prisma.AtLeast<{
xp?: Prisma.IntFilter<"User"> | number
maxXp?: Prisma.IntFilter<"User"> | number
avatar?: Prisma.StringNullableFilter<"User"> | string | null
bio?: Prisma.StringNullableFilter<"User"> | string | null
createdAt?: Prisma.DateTimeFilter<"User"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
@@ -366,6 +376,7 @@ export type UserOrderByWithAggregationInput = {
xp?: Prisma.SortOrder
maxXp?: Prisma.SortOrder
avatar?: Prisma.SortOrderInput | Prisma.SortOrder
bio?: Prisma.SortOrderInput | Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
_count?: Prisma.UserCountOrderByAggregateInput
@@ -391,6 +402,7 @@ export type UserScalarWhereWithAggregatesInput = {
xp?: Prisma.IntWithAggregatesFilter<"User"> | number
maxXp?: Prisma.IntWithAggregatesFilter<"User"> | number
avatar?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null
bio?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null
createdAt?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string
updatedAt?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string
}
@@ -408,6 +420,7 @@ export type UserCreateInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
@@ -427,6 +440,7 @@ export type UserUncheckedCreateInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
@@ -446,6 +460,7 @@ export type UserUpdateInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
@@ -465,6 +480,7 @@ export type UserUncheckedUpdateInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
@@ -484,6 +500,7 @@ export type UserCreateManyInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
}
@@ -501,6 +518,7 @@ export type UserUpdateManyMutationInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}
@@ -518,6 +536,7 @@ export type UserUncheckedUpdateManyInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}
@@ -535,6 +554,7 @@ export type UserCountOrderByAggregateInput = {
xp?: Prisma.SortOrder
maxXp?: Prisma.SortOrder
avatar?: Prisma.SortOrder
bio?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
}
@@ -561,6 +581,7 @@ export type UserMaxOrderByAggregateInput = {
xp?: Prisma.SortOrder
maxXp?: Prisma.SortOrder
avatar?: Prisma.SortOrder
bio?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
}
@@ -578,6 +599,7 @@ export type UserMinOrderByAggregateInput = {
xp?: Prisma.SortOrder
maxXp?: Prisma.SortOrder
avatar?: Prisma.SortOrder
bio?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
}
@@ -661,6 +683,7 @@ export type UserCreateWithoutPreferencesInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
eventRegistrations?: Prisma.EventRegistrationCreateNestedManyWithoutUserInput
@@ -679,6 +702,7 @@ export type UserUncheckedCreateWithoutPreferencesInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
eventRegistrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutUserInput
@@ -713,6 +737,7 @@ export type UserUpdateWithoutPreferencesInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
eventRegistrations?: Prisma.EventRegistrationUpdateManyWithoutUserNestedInput
@@ -731,6 +756,7 @@ export type UserUncheckedUpdateWithoutPreferencesInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
eventRegistrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutUserNestedInput
@@ -749,6 +775,7 @@ export type UserCreateWithoutEventRegistrationsInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
@@ -767,6 +794,7 @@ export type UserUncheckedCreateWithoutEventRegistrationsInput = {
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
@@ -801,6 +829,7 @@ export type UserUpdateWithoutEventRegistrationsInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
@@ -819,6 +848,7 @@ export type UserUncheckedUpdateWithoutEventRegistrationsInput = {
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
@@ -868,6 +898,7 @@ export type UserSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = r
xp?: boolean
maxXp?: boolean
avatar?: boolean
bio?: boolean
createdAt?: boolean
updatedAt?: boolean
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
@@ -888,6 +919,7 @@ export type UserSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensio
xp?: boolean
maxXp?: boolean
avatar?: boolean
bio?: boolean
createdAt?: boolean
updatedAt?: boolean
}, ExtArgs["result"]["user"]>
@@ -905,6 +937,7 @@ export type UserSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensio
xp?: boolean
maxXp?: boolean
avatar?: boolean
bio?: boolean
createdAt?: boolean
updatedAt?: boolean
}, ExtArgs["result"]["user"]>
@@ -922,11 +955,12 @@ export type UserSelectScalar = {
xp?: boolean
maxXp?: boolean
avatar?: boolean
bio?: boolean
createdAt?: boolean
updatedAt?: boolean
}
export type UserOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "email" | "password" | "username" | "role" | "score" | "level" | "hp" | "maxHp" | "xp" | "maxXp" | "avatar" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]>
export type UserOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "email" | "password" | "username" | "role" | "score" | "level" | "hp" | "maxHp" | "xp" | "maxXp" | "avatar" | "bio" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]>
export type UserInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
eventRegistrations?: boolean | Prisma.User$eventRegistrationsArgs<ExtArgs>
@@ -954,6 +988,7 @@ export type $UserPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs =
xp: number
maxXp: number
avatar: string | null
bio: string | null
createdAt: Date
updatedAt: Date
}, ExtArgs["result"]["user"]>
@@ -1393,6 +1428,7 @@ export interface UserFieldRefs {
readonly xp: Prisma.FieldRef<"User", 'Int'>
readonly maxXp: Prisma.FieldRef<"User", 'Int'>
readonly avatar: Prisma.FieldRef<"User", 'String'>
readonly bio: Prisma.FieldRef<"User", 'String'>
readonly createdAt: Prisma.FieldRef<"User", 'DateTime'>
readonly updatedAt: Prisma.FieldRef<"User", 'DateTime'>
}