update: addition of status and change in the validated column to the verified column

This commit is contained in:
falendikategar 2024-10-25 08:11:39 +07:00
parent 55cc35718d
commit edfcffe223
5 changed files with 26 additions and 25 deletions

View File

@ -4,7 +4,8 @@ import { relations } from "drizzle-orm";
import { respondents } from "./respondents"; import { respondents } from "./respondents";
import { users } from "./users"; import { users } from "./users";
export const statusEnum = pgEnum("status", ["menunggu konfirmasi", "diterima", "ditolak", "selesai"]); export const statusEnum = pgEnum("status", ["menunggu konfirmasi", "diterima", "ditolak",
"dalam proses", "selesai", "belum diverifikasi", "sudah diverifikasi"]);
export const assessments = pgTable("assessments", { export const assessments = pgTable("assessments", {
id: varchar("id", { length: 50 }) id: varchar("id", { length: 50 })
@ -14,8 +15,8 @@ export const assessments = pgTable("assessments", {
status: statusEnum("status"), status: statusEnum("status"),
reviewedBy: varchar("reviewedBy"), reviewedBy: varchar("reviewedBy"),
reviewedAt: timestamp("reviewedAt", { mode: "date" }), reviewedAt: timestamp("reviewedAt", { mode: "date" }),
validatedBy: varchar("validatedBy"), verifiedBy: varchar("verifiedBy"),
validatedAt: timestamp("validatedAt", { mode: "date" }), verifiedAt: timestamp("verifiedAt", { mode: "date" }),
createdAt: timestamp("createdAt", { mode: "date" }).defaultNow(), createdAt: timestamp("createdAt", { mode: "date" }).defaultNow(),
}); });
// Query Tools in PosgreSQL // Query Tools in PosgreSQL

View File

@ -6,11 +6,11 @@ import { users } from "../schema/users";
type AssessmentData = { type AssessmentData = {
id: string; id: string;
status: "menunggu konfirmasi" | "diterima" | "ditolak" | "selesai"; status: "menunggu konfirmasi" | "diterima" | "ditolak" | "dalam proses" | "selesai" | "belum diverifikasi" | "sudah diverifikasi";
reviewedAt: Date; reviewedAt: Date;
reviewedBy: string; reviewedBy: string;
validatedBy: string; verifiedBy: string;
validatedAt: Date; verifiedAt: Date;
createdAt: Date, createdAt: Date,
respondentId: string; respondentId: string;
}; };
@ -26,8 +26,8 @@ const assessmentsSeeder = async () => {
status: "diterima", status: "diterima",
reviewedAt: new Date(), reviewedAt: new Date(),
reviewedBy: "Reviewer B", reviewedBy: "Reviewer B",
validatedBy: "Reviewer A", verifiedBy: "Reviewer A",
validatedAt: new Date(), verifiedAt: new Date(),
createdAt: new Date(), createdAt: new Date(),
respondentId: respondent.id, respondentId: respondent.id,
@ -38,8 +38,8 @@ const assessmentsSeeder = async () => {
status: "ditolak", status: "ditolak",
reviewedAt: new Date(), reviewedAt: new Date(),
reviewedBy: "Reviewer C", reviewedBy: "Reviewer C",
validatedBy: "Reviewer D", verifiedBy: "Reviewer D",
validatedAt: new Date(), verifiedAt: new Date(),
createdAt: new Date(), createdAt: new Date(),
respondentId: respondent.id, respondentId: respondent.id,
}); });
@ -49,8 +49,8 @@ const assessmentsSeeder = async () => {
status: "menunggu konfirmasi", status: "menunggu konfirmasi",
reviewedAt: new Date(), reviewedAt: new Date(),
reviewedBy: "Reviewer W", reviewedBy: "Reviewer W",
validatedBy: "Reviewer S", verifiedBy: "Reviewer S",
validatedAt: new Date(), verifiedAt: new Date(),
createdAt: new Date(), createdAt: new Date(),
respondentId: respondent.id, respondentId: respondent.id,
}); });
@ -60,8 +60,8 @@ const assessmentsSeeder = async () => {
status: "selesai", status: "selesai",
reviewedAt: new Date(), reviewedAt: new Date(),
reviewedBy: "Reviewer F", reviewedBy: "Reviewer F",
validatedBy: "Reviewer G", verifiedBy: "Reviewer G",
validatedAt: new Date(), verifiedAt: new Date(),
createdAt: new Date(), createdAt: new Date(),
respondentId: respondent.id, respondentId: respondent.id,
}); });
@ -70,8 +70,8 @@ const assessmentsSeeder = async () => {
status: "selesai", status: "selesai",
reviewedAt: new Date(), reviewedAt: new Date(),
reviewedBy: "Reviewer I", reviewedBy: "Reviewer I",
validatedBy: "Reviewer L", verifiedBy: "Reviewer L",
validatedAt: new Date(), verifiedAt: new Date(),
createdAt: new Date(), createdAt: new Date(),
respondentId: respondent.id, respondentId: respondent.id,
}); });

View File

@ -137,8 +137,8 @@ const assessmentRequestRoute = new Hono<HonoEnv>()
id: createId(), id: createId(),
respondentId, respondentId,
status: "menunggu konfirmasi", // Status awal permohonan status: "menunggu konfirmasi", // Status awal permohonan
validatedBy: null, verifiedBy: null,
validatedAt: null, verifiedAt: null,
createdAt: new Date(), createdAt: new Date(),
}) })
.returning(); .returning();

View File

@ -15,12 +15,12 @@ export const assessmentFormSchema = z.object({
respondentId: z.string().min(1), respondentId: z.string().min(1),
status: z.enum(["menunggu konfirmasi", "diterima", "ditolak", "selesai"]), status: z.enum(["menunggu konfirmasi", "diterima", "ditolak", "selesai"]),
reviewedBy: z.string().min(1), reviewedBy: z.string().min(1),
validatedBy: z.string().min(1), verifiedBy: z.string().min(1),
validatedAt: z.string().optional(), verifiedAt: z.string().optional(),
}); });
export const assessmentUpdateSchema = assessmentFormSchema.extend({ export const assessmentUpdateSchema = assessmentFormSchema.extend({
validatedAt: z.string().optional().or(z.literal("")), verifiedAt: z.string().optional().or(z.literal("")),
}); });
const assessmentsRequestManagementRoutes = new Hono<HonoEnv>() const assessmentsRequestManagementRoutes = new Hono<HonoEnv>()

View File

@ -64,7 +64,7 @@ const assessmentRoute = new Hono<HonoEnv>()
statusAssessments: assessments.status, statusAssessments: assessments.status,
statusVerification: sql<string>` statusVerification: sql<string>`
CASE CASE
WHEN ${assessments.validatedAt} IS NOT NULL THEN 'sudah diverifikasi' WHEN ${assessments.verifiedAt} IS NOT NULL THEN 'sudah diverifikasi'
ELSE 'belum diverifikasi' ELSE 'belum diverifikasi'
END` END`
.as("statusVerification"), .as("statusVerification"),
@ -128,7 +128,7 @@ const assessmentRoute = new Hono<HonoEnv>()
statusAssessment: assessments.status, statusAssessment: assessments.status,
statusVerification: sql<string>` statusVerification: sql<string>`
CASE CASE
WHEN ${assessments.validatedAt} IS NOT NULL THEN 'sudah diverifikasi' WHEN ${assessments.verifiedAt} IS NOT NULL THEN 'sudah diverifikasi'
ELSE 'belum diverifikasi' ELSE 'belum diverifikasi'
END` END`
.as("statusVerification"), .as("statusVerification"),
@ -290,10 +290,10 @@ const assessmentRoute = new Hono<HonoEnv>()
await db await db
.update(assessments) .update(assessments)
.set({ .set({
validatedAt: new Date(), verifiedAt: new Date(),
}) })
.where(eq(assessments.id, assessmentId)); .where(eq(assessments.id, assessmentId));
console.log("Validated Success"); console.log("Verified Success");
return c.json({ return c.json({
message: "Assessment berhasil diverifikasi", message: "Assessment berhasil diverifikasi",