fix(schdule): remove timezone

This commit is contained in:
avicenan
2026-04-17 16:15:01 +07:00
parent f1f0ee8671
commit 27a275661e
3 changed files with 507 additions and 515 deletions

View File

@ -248,12 +248,11 @@ export class ScheduleController {
roomId: Joi.string().uuid().required(),
doctorId: Joi.string().uuid().required(),
title: Joi.string().max(256).required(),
timezone: Joi.string().max(64).required(),
quota: Joi.number().integer().min(0).allow(null).optional(),
startDate: Joi.string().required(),
untilDate: Joi.string().allow("", null).optional(),
startTimeLocal: Joi.string().required(),
endTimeLocal: Joi.string().required(),
startTime: Joi.string().required(),
endTime: Joi.string().required(),
recurrence: Joi.object({
type: Joi.string().valid("daily", "weekly", "monthly").required(),
interval: Joi.number().min(1).optional(),
@ -292,12 +291,11 @@ export class ScheduleController {
roomId: Joi.string().uuid().required(),
doctorId: Joi.string().uuid().required(),
title: Joi.string().max(256).required(),
timezone: Joi.string().max(64).required(),
quota: Joi.number().integer().min(0).allow(null).optional(),
startDate: Joi.string().required(),
untilDate: Joi.string().allow("", null).optional(),
startTimeLocal: Joi.string().required(),
endTimeLocal: Joi.string().required(),
startTime: Joi.string().required(),
endTime: Joi.string().required(),
recurrence: Joi.object({
type: Joi.string().valid("daily", "weekly", "monthly").required(),
interval: Joi.number().min(1).optional(),

View File

@ -13,12 +13,11 @@ type ScheduleSeriesPayload = {
roomId: string;
doctorId: string;
title: string;
timezone: string;
quota?: number | null;
startDate: string;
untilDate?: string | null;
startTimeLocal: string;
endTimeLocal: string;
startTime: string;
endTime: string;
recurrence?: RecurrenceInput | null;
};
@ -112,8 +111,8 @@ export class ScheduleModel {
const exception = exceptionMap.get(`${series.id}:${occurrenceYmd}`);
if (exception && exception.is_cancelled) continue;
const defaultStart = ScheduleModel.combineDateAndTime(occurrenceYmd, series.start_time_local);
const defaultEnd = ScheduleModel.combineDateAndTime(occurrenceYmd, series.end_time_local);
const defaultStart = ScheduleModel.combineDateAndTime(occurrenceYmd, series.start_time);
const defaultEnd = ScheduleModel.combineDateAndTime(occurrenceYmd, series.end_time);
const doctor = exception?.override_doctor ?? series.doctor;
const room = exception?.override_room ?? series.room;
@ -262,12 +261,11 @@ export class ScheduleModel {
series.room = room;
series.doctor = doctor;
series.title = payload.title;
series.timezone = payload.timezone;
series.quota = payload.quota ?? null;
series.start_date = new Date(payload.startDate);
series.until_date = payload.untilDate ? new Date(payload.untilDate) : null;
series.start_time_local = payload.startTimeLocal;
series.end_time_local = payload.endTimeLocal;
series.start_time = payload.startTime;
series.end_time = payload.endTime;
series.recurrence_rule = ScheduleModel.recurrenceToRRule(payload.recurrence || null);
series.status = Status.Active;
series.created_by = actor;
@ -295,12 +293,11 @@ export class ScheduleModel {
series.room = room;
series.doctor = doctor;
series.title = payload.title;
series.timezone = payload.timezone;
series.quota = payload.quota ?? null;
series.start_date = new Date(payload.startDate);
series.until_date = payload.untilDate ? new Date(payload.untilDate) : null;
series.start_time_local = payload.startTimeLocal;
series.end_time_local = payload.endTimeLocal;
series.start_time = payload.startTime;
series.end_time = payload.endTime;
series.recurrence_rule = ScheduleModel.recurrenceToRRule(payload.recurrence || null);
series.updated_by = actor;

View File

@ -401,24 +401,22 @@ const doc = {
$roomId: "uuid-string",
$doctorId: "uuid-string",
$title: "Practice Schedule",
$timezone: "Asia/Jakarta",
$quota: 20,
$startDate: "2026-03-20",
$untilDate: "2026-06-30",
$startTimeLocal: "09:00:00",
$endTimeLocal: "12:00:00",
$startTime: "09:00:00",
$endTime: "12:00:00",
$recurrence: { $ref: "#/components/schemas/scheduleRecurrence" },
},
scheduleSeriesUpdate: {
$roomId: "uuid-string",
$doctorId: "uuid-string",
$title: "Practice Schedule Updated",
$timezone: "Asia/Jakarta",
$quota: 25,
$startDate: "2026-03-20",
$untilDate: "2026-07-31",
$startTimeLocal: "10:00:00",
$endTimeLocal: "13:00:00",
$startTime: "10:00:00",
$endTime: "13:00:00",
$recurrence: { $ref: "#/components/schemas/scheduleRecurrence" },
},
scheduleSeriesDetail: {
@ -426,12 +424,11 @@ const doc = {
$room_id: "uuid-string",
$doctor_id: "uuid-string",
$title: "Practice Schedule",
$timezone: "Asia/Jakarta",
$quota: 20,
$start_date: "2026-03-20",
$until_date: "2026-06-30",
$start_time_local: "09:00:00",
$end_time_local: "12:00:00",
$start_time: "09:00:00",
$end_time: "12:00:00",
$recurrence: { $ref: "#/components/schemas/scheduleRecurrence" },
$status: "Active",
$room: { id: "uuid-string", room: "Room 1" },