diff --git a/src/api/query/getQueryDetail.ts b/src/api/query/getQueryDetail.ts index b47209f..55de5c6 100644 --- a/src/api/query/getQueryDetail.ts +++ b/src/api/query/getQueryDetail.ts @@ -4,7 +4,7 @@ import { ResponseType } from ".."; import fetchData from "../fetchData"; export default async function getQueryDetail(params: DetailParams) { - const url = `/admin-support/queries/${params.id}`; + const url = `/admin-support/inquiries/${params.id}`; const response = await fetchData>({ url }); return response.data; diff --git a/src/api/query/getQueryList.ts b/src/api/query/getQueryList.ts index 8a05d08..689d0f7 100644 --- a/src/api/query/getQueryList.ts +++ b/src/api/query/getQueryList.ts @@ -5,13 +5,13 @@ import { QueryListType } from "."; import fetchData from "../fetchData"; export type QueryListResponseType = { - quleroquisDto: QueryListType[]; + inquiries: QueryListType[]; } & ResponsePaginationType; export default async function getQueryList(params: ListParams) { const { page, perPage } = params.pagination; const filter = "all"; - const url = `/admin-support/notices?page=${page}&limit=${perPage}&filter=${filter}`; + const url = `/admin-support/inquiries?page=${page}&limit=${perPage}&filter=${filter}`; const response = await fetchData>({ url, diff --git a/src/api/query/index.d.ts b/src/api/query/index.d.ts index 657cc65..772db66 100644 --- a/src/api/query/index.d.ts +++ b/src/api/query/index.d.ts @@ -1,5 +1,17 @@ +import { AuthorType } from ".."; + export type QueryType = { id: number; + createdDate: "2025-01-04T19:38:11.707+09:00"; + processed: boolean; + title: string; + user: AuthorType; + answer: null | string; + type: "기술 지원 관련"; + content: string; }; -export type QueryListType = QueryType; +export type QueryListType = Pick< + QueryType, + "id" | "title" | "processed" | "user" | "createdDate" +>; diff --git a/src/api/query/postQueryAnswer.ts b/src/api/query/postQueryAnswer.ts new file mode 100644 index 0000000..c0e78cd --- /dev/null +++ b/src/api/query/postQueryAnswer.ts @@ -0,0 +1,21 @@ +import fetchData from "../fetchData"; +import { z } from "zod"; + +export const PostQueryAnswerSchema = z.object({ + answer: z + .string() + .min(10, { message: "10글자 이상의 답변변을 입력해주세요." }), +}); + +export type PostQueryAnswerBodyType = z.infer; + +export default async function postQueryAnswer( + id: number, + body: PostQueryAnswerBodyType +) { + const url = `/admin-support/inquiries/${id}`; + + const response = await fetchData({ url, method: "POST", body }); + + return response; +} diff --git a/src/components/ui/textarea.tsx b/src/components/ui/textarea.tsx new file mode 100644 index 0000000..954af2c --- /dev/null +++ b/src/components/ui/textarea.tsx @@ -0,0 +1,22 @@ +import * as React from "react"; + +import { cn } from "../../lib/utils"; + +const Textarea = React.forwardRef< + HTMLTextAreaElement, + React.ComponentProps<"textarea"> +>(({ className, ...props }, ref) => { + return ( +