diff --git a/prisma/migrations/20260302000000_add_user_nationality_institution/migration.sql b/prisma/migrations/20260302000000_add_user_nationality_institution/migration.sql new file mode 100644 index 0000000..3f77816 --- /dev/null +++ b/prisma/migrations/20260302000000_add_user_nationality_institution/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "nationality" TEXT; +ALTER TABLE "User" ADD COLUMN "institution" TEXT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index c584efe..72ceb68 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -308,6 +308,8 @@ model User { expertiseTags String[] @default([]) maxAssignments Int? // Per-round limit country String? // User's home country (for mentor matching) + nationality String? // User's nationality (for applicant profiles) + institution String? // User's institution/organization metadataJson Json? @db.JsonB // Profile diff --git a/src/app/(applicant)/applicant/team/page.tsx b/src/app/(applicant)/applicant/team/page.tsx index a44ca7e..d07cd0b 100644 --- a/src/app/(applicant)/applicant/team/page.tsx +++ b/src/app/(applicant)/applicant/team/page.tsx @@ -46,6 +46,8 @@ import { AlertDialogTitle, AlertDialogTrigger, } from '@/components/ui/alert-dialog' +import { CountrySelect } from '@/components/ui/country-select' +import { Checkbox as CheckboxPrimitive } from '@/components/ui/checkbox' import { Users, UserPlus, @@ -64,6 +66,10 @@ const inviteSchema = z.object({ email: z.string().email('Invalid email address'), role: z.enum(['MEMBER', 'ADVISOR']), title: z.string().optional(), + nationality: z.string().optional(), + country: z.string().optional(), + institution: z.string().optional(), + sendInvite: z.boolean().default(true), }) type InviteFormData = z.infer @@ -129,6 +135,10 @@ export default function ApplicantTeamPage() { email: '', role: 'MEMBER', title: '', + nationality: '', + country: '', + institution: '', + sendInvite: true, }, }) @@ -280,6 +290,42 @@ export default function ApplicantTeamPage() { /> +
+
+ + form.setValue('nationality', v)} + placeholder="Select nationality" + /> +
+
+ + form.setValue('country', v)} + placeholder="Select country" + /> +
+
+
+ + +
+
+ form.setValue('sendInvite', !!checked)} + /> + +

What invited members can do: