feat: allow multiple import nationality for user
This commit is contained in:
parent
5536331984
commit
ffb1ce2d40
2 changed files with 27 additions and 4 deletions
|
|
@ -366,6 +366,14 @@ enum UserType {
|
|||
AGENCY
|
||||
}
|
||||
|
||||
model UserImportNationality {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
userId String
|
||||
}
|
||||
|
||||
model User {
|
||||
id String @id @default(cuid())
|
||||
|
||||
|
|
@ -424,7 +432,7 @@ model User {
|
|||
licenseExpireDate DateTime? @db.Date
|
||||
|
||||
sourceNationality String?
|
||||
importNationality String?
|
||||
importNationality UserImportNationality[]
|
||||
|
||||
trainingPlace String?
|
||||
responsibleArea UserResponsibleArea[]
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ type UserCreate = {
|
|||
licenseIssueDate?: Date | null;
|
||||
licenseExpireDate?: Date | null;
|
||||
sourceNationality?: string | null;
|
||||
importNationality?: string | null;
|
||||
importNationality?: string[] | null;
|
||||
trainingPlace?: string | null;
|
||||
responsibleArea?: string[] | null;
|
||||
birthDate?: Date | null;
|
||||
|
|
@ -161,7 +161,7 @@ type UserUpdate = {
|
|||
licenseIssueDate?: Date | null;
|
||||
licenseExpireDate?: Date | null;
|
||||
sourceNationality?: string | null;
|
||||
importNationality?: string | null;
|
||||
importNationality?: string[] | null;
|
||||
trainingPlace?: string | null;
|
||||
responsibleArea?: string[] | null;
|
||||
birthDate?: Date | null;
|
||||
|
|
@ -383,6 +383,7 @@ export class UserController extends Controller {
|
|||
prisma.user.findMany({
|
||||
orderBy: [{ statusOrder: "asc" }, { createdAt: "asc" }],
|
||||
include: {
|
||||
importNationality: true,
|
||||
responsibleArea: true,
|
||||
province: true,
|
||||
district: true,
|
||||
|
|
@ -401,6 +402,7 @@ export class UserController extends Controller {
|
|||
return {
|
||||
result: result.map((v) => ({
|
||||
...v,
|
||||
importNationality: v.importNationality.map((v) => v.name),
|
||||
responsibleArea: v.responsibleArea.map((v) => v.area),
|
||||
branch: includeBranch ? v.branch.map((a) => a.branch) : undefined,
|
||||
})),
|
||||
|
|
@ -415,6 +417,7 @@ export class UserController extends Controller {
|
|||
async getUserById(@Path() userId: string) {
|
||||
const record = await prisma.user.findFirst({
|
||||
include: {
|
||||
importNationality: true,
|
||||
province: true,
|
||||
district: true,
|
||||
subDistrict: true,
|
||||
|
|
@ -426,7 +429,11 @@ export class UserController extends Controller {
|
|||
|
||||
if (!record) throw notFoundError("User");
|
||||
|
||||
return record;
|
||||
const { importNationality, ...rest } = record;
|
||||
|
||||
return Object.assign(rest, {
|
||||
importNationality: importNationality.map((v) => v.name),
|
||||
});
|
||||
}
|
||||
|
||||
@Post()
|
||||
|
|
@ -528,6 +535,9 @@ export class UserController extends Controller {
|
|||
create: rest.responsibleArea.map((v) => ({ area: v })),
|
||||
}
|
||||
: undefined,
|
||||
importNationality: {
|
||||
createMany: { data: rest.importNationality?.map((v) => ({ name: v })) || [] },
|
||||
},
|
||||
statusOrder: +(rest.status === "INACTIVE"),
|
||||
username,
|
||||
userRole: role.name,
|
||||
|
|
@ -683,6 +693,7 @@ export class UserController extends Controller {
|
|||
|
||||
const record = await prisma.user.update({
|
||||
include: {
|
||||
importNationality: true,
|
||||
province: true,
|
||||
district: true,
|
||||
subDistrict: true,
|
||||
|
|
@ -697,6 +708,10 @@ export class UserController extends Controller {
|
|||
create: rest.responsibleArea.map((v) => ({ area: v })),
|
||||
}
|
||||
: undefined,
|
||||
importNationality: {
|
||||
deleteMany: {},
|
||||
createMany: { data: rest.importNationality?.map((v) => ({ name: v })) || [] },
|
||||
},
|
||||
statusOrder: +(rest.status === "INACTIVE"),
|
||||
userRole,
|
||||
province: connectOrDisconnect(provinceId),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue