export const MEETING_ATTENDANCE_AUDIT_ACTIONS = {
  LOGIN: 'LOGIN',
  LOGOUT: 'LOGOUT',
  LOGIN_FAILED: 'LOGIN_FAILED',
  USER_CREATE: 'USER_CREATE',
  USER_UPDATE: 'USER_UPDATE',
  USER_DELETE: 'USER_DELETE',
  USER_DISABLE: 'USER_DISABLE',
  USER_ENABLE: 'USER_ENABLE',
  USER_IMPORT: 'USER_IMPORT',
  MEETING_CREATE: 'MEETING_CREATE',
  MEETING_UPDATE: 'MEETING_UPDATE',
  MEETING_DELETE: 'MEETING_DELETE',
  MEETING_CANCEL: 'MEETING_CANCEL',
  MEETING_STATUS_UPDATE: 'MEETING_STATUS_UPDATE',
  ATTENDANCE_CHECKIN: 'ATTENDANCE_CHECKIN',
  ATTENDANCE_CHECKOUT: 'ATTENDANCE_CHECKOUT',
  ATTENDANCE_UPDATE: 'ATTENDANCE_UPDATE',
  ATTENDANCE_MANUAL: 'ATTENDANCE_MANUAL',
  ATTENDANCE_IMPORT: 'ATTENDANCE_IMPORT',
  ATTENDANCE_MARK_ABSENT: 'ATTENDANCE_MARK_ABSENT',
  SERIES_CREATE: 'SERIES_CREATE',
  SERIES_UPDATE: 'SERIES_UPDATE',
  SERIES_DELETE: 'SERIES_DELETE',
  TEMPLATE_CREATE: 'TEMPLATE_CREATE',
  TEMPLATE_UPDATE: 'TEMPLATE_UPDATE',
  TEMPLATE_DELETE: 'TEMPLATE_DELETE',
  REPORT_GENERATE: 'REPORT_GENERATE',
  REPORT_EXPORT: 'REPORT_EXPORT',
  SYSTEM_SETTING_UPDATE: 'SYSTEM_SETTING_UPDATE',
  API_ERROR: 'API_ERROR',
  // v1.2 签到方式校验
  MEETING_ENFORCE_CHECKIN_MODE_UPDATE: 'MEETING_ENFORCE_CHECKIN_MODE_UPDATE',
  SERIES_ENFORCE_CHECKIN_MODE_UPDATE: 'SERIES_ENFORCE_CHECKIN_MODE_UPDATE',
  ATTENDEE_CHECKIN_MODE_OVERRIDE: 'ATTENDEE_CHECKIN_MODE_OVERRIDE',
  SERIES_ATTENDEE_PREFERENCE_UPSERT: 'SERIES_ATTENDEE_PREFERENCE_UPSERT',
  SERIES_ATTENDEE_PREFERENCE_DELETE: 'SERIES_ATTENDEE_PREFERENCE_DELETE',
  // ADP PTO 集成
  ATTENDANCE_PTO_AUTO_MARKED: 'ATTENDANCE_PTO_AUTO_MARKED',
  ADP_PTO_DATA_ACCESS: 'ADP_PTO_DATA_ACCESS',
  // v1.3 Outlook 同步参会人自动入组
  OUTLOOK_ATTENDEE_AUTO_ADD: 'OUTLOOK_ATTENDEE_AUTO_ADD',
  // v1.0 议程能力
  AGENDA_SECTION_CREATED: 'AGENDA_SECTION_CREATED',
  AGENDA_SECTION_UPDATED: 'AGENDA_SECTION_UPDATED',
  AGENDA_SECTION_DELETED: 'AGENDA_SECTION_DELETED',
  AGENDA_ITEM_CREATED: 'AGENDA_ITEM_CREATED',
  AGENDA_ITEM_UPDATED: 'AGENDA_ITEM_UPDATED',
  AGENDA_ITEM_DELETED: 'AGENDA_ITEM_DELETED',
  UPLOAD_TASK_ASSIGNED: 'UPLOAD_TASK_ASSIGNED',
  UPLOAD_TASK_CANCELLED: 'UPLOAD_TASK_CANCELLED',
  ATTACHMENT_UPLOADED: 'ATTACHMENT_UPLOADED',
  ATTACHMENT_DELETED: 'ATTACHMENT_DELETED',
} as const;

export const MEETING_ATTENDANCE_AUDIT_RESOURCES = {
  USER: 'USER',
  MEETING: 'MEETING',
  SERIES: 'SERIES',
  TEMPLATE: 'TEMPLATE',
  ATTENDANCE: 'ATTENDANCE',
  SYSTEM: 'SYSTEM',
  AUTH: 'AUTH',
  REPORT: 'REPORT',
  // v1.0 议程能力
  AGENDA_SECTION: 'AGENDA_SECTION',
  AGENDA_ITEM: 'AGENDA_ITEM',
  UPLOAD_TASK: 'UPLOAD_TASK',
  ATTACHMENT: 'ATTACHMENT',
} as const;

export type MeetingAttendanceAuditAction =
  (typeof MEETING_ATTENDANCE_AUDIT_ACTIONS)[keyof typeof MEETING_ATTENDANCE_AUDIT_ACTIONS];
export type MeetingAttendanceAuditResource =
  (typeof MEETING_ATTENDANCE_AUDIT_RESOURCES)[keyof typeof MEETING_ATTENDANCE_AUDIT_RESOURCES];
