const timePattern = '^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$';
const datePattern = '^\\d{4}-\\d{2}-\\d{2}$';

export const updateOfficeSettingsSchema = {
  body: {
    type: 'object',
    required: ['startTime', 'endTime', 'weeklyOffDay'],
    properties: {
      startTime: { type: 'string', pattern: timePattern },
      endTime: { type: 'string', pattern: timePattern },
      weeklyOffDay: { type: 'integer', minimum: 0, maximum: 6 },
    },
  },
};

const holidayProperties = {
  date: { type: 'string', pattern: datePattern },
  type: { type: 'string', enum: ['holiday', 'half_day', 'active_day'] },
  halfDayStart: { type: 'string', pattern: timePattern },
  halfDayEnd: { type: 'string', pattern: timePattern },
  remark: { type: 'string', maxLength: 255 },
};

export const addHolidaySchema = {
  body: {
    type: 'object',
    required: ['date', 'type'],
    properties: holidayProperties,
  },
};

export const updateHolidaySchema = {
  body: {
    type: 'object',
    required: ['date', 'type'],
    properties: holidayProperties,
  },
};
