updated living space

This commit is contained in:
2025-11-26 16:10:15 +03:00
parent 2062aa7a1d
commit 3aebb79d36
38 changed files with 709 additions and 688 deletions

View File

@@ -15,6 +15,8 @@ export async function POST(request: Request) {
data {
_id
collectionToken
createdAt
updatedAt
buildType {
token
typeToken
@@ -38,6 +40,7 @@ export async function POST(request: Request) {
garageCount
managementRoomId
}
}
totalCount
}

View File

@@ -1,13 +1,13 @@
'use server';
import { NextResponse } from 'next/server';
import { GraphQLClient, gql } from 'graphql-request';
import { buildPartsAddSchema } from './schema';
import { userTypesAddSchema } from './schema';
const endpoint = "http://localhost:3001/graphql";
export async function POST(request: Request) {
const body = await request.json();
const validatedBody = buildPartsAddSchema.parse({ ...body.data, buildId: body.buildId });
const validatedBody = userTypesAddSchema.parse(body);
try {
const client = new GraphQLClient(endpoint);
const query = gql`mutation CreateUserType($input: CreateUserTypesInput!) { createUserType(input: $input) { _id }}`;

View File

@@ -1,23 +1,15 @@
import { z } from "zod"
export const buildPartsAddSchema = z.object({
buildId: z.string(),
addressGovCode: z.string(),
no: z.number(),
level: z.number(),
code: z.string(),
grossSize: z.number(),
netSize: z.number(),
defaultAccessory: z.string(),
humanLivability: z.boolean(),
key: z.string(),
directionId: z.string().optional(),
typeId: z.string().optional(),
active: z.boolean().default(true),
isConfirmed: z.boolean().default(false),
export const userTypesAddSchema = z.object({
type: z.string(),
token: z.string(),
typeToken: z.string(),
description: z.string(),
isProperty: z.boolean(),
expiryStarts: z.string().optional(),
expiryEnds: z.string().optional()
expiryEnds: z.string().optional(),
});
export type BuildPartsAdd = z.infer<typeof buildPartsAddSchema>;
export type userTypesAdd = z.infer<typeof userTypesAddSchema>;

View File

@@ -8,12 +8,12 @@ export async function GET(request: Request) {
const searchParams = new URL(request.url).searchParams;
const uuid = searchParams.get('uuid');
console.dir({ uuid }, { depth: null });
if (!uuid) { return NextResponse.json({ error: 'UUID not found in search params' }, { status: 400 }) }
try {
const client = new GraphQLClient(endpoint);
const query = gql`mutation DeleteUserType($uuid: String!) { deleteUserType(uuid: $uuid) }`;
const variables = { uuid: uuid };
const data = await client.request(query, variables);
const data = await client.request(query, { uuid });
return NextResponse.json({ data: data.deleteUserType, status: 200 });
} catch (err: any) {
console.error(err);

View File

@@ -16,6 +16,7 @@ export async function POST(request: Request) {
_id
uuid
createdAt
updatedAt
expiryStarts
expiryEnds
type

View File

@@ -1,16 +1,16 @@
'use server';
import { NextResponse } from 'next/server';
import { GraphQLClient, gql } from 'graphql-request';
import { UpdateBuildPartsSchema } from './schema';
import { UpdateUserTypesSchema } from './schema';
const endpoint = "http://localhost:3001/graphql";
export async function POST(request: Request) {
const searchUrl = new URL(request.url);
const uuid = searchUrl.searchParams.get("uuid") || "";
const body = await request.json();
const validatedBody = UpdateBuildPartsSchema.parse(body);
if (uuid === "") { return NextResponse.json({ error: "UUID is required" }, { status: 400 }) }
const body = await request.json();
const validatedBody = UpdateUserTypesSchema.parse(body);
try {
const client = new GraphQLClient(endpoint);
const query = gql`mutation UpdateUserType($uuid: String!, $input: UpdateUserTypeInput!) { updateUserType(uuid: $uuid, input: $input) { _id } }`;

View File

@@ -1,24 +1,15 @@
import { z } from "zod"
export const UpdateBuildPartsSchema = z.object({
export const UpdateUserTypesSchema = z.object({
buildId: z.string().optional(),
addressGovCode: z.string(),
no: z.number(),
level: z.number(),
code: z.string(),
grossSize: z.number(),
netSize: z.number(),
defaultAccessory: z.string(),
humanLivability: z.boolean(),
key: z.string(),
directionId: z.string().optional(),
typeId: z.string().optional(),
active: z.boolean(),
isConfirmed: z.boolean(),
type: z.string(),
token: z.string(),
typeToken: z.string(),
description: z.string(),
isProperty: z.boolean(),
expiryStarts: z.string().optional(),
expiryEnds: z.string().optional()
expiryEnds: z.string().optional(),
});
export type UpdateBuildParts = z.infer<typeof UpdateBuildPartsSchema>;
export type UpdateUserTypes = z.infer<typeof UpdateUserTypesSchema>;