export const LOG_ACTION = {
  CHANGE_PASSWORD: 'change_password',
  CREATE: 'create',
  UPDATE: 'update',
  DELETE: 'delete',
  SIGN_IN: 'sign_in',
  SIGN_OUT: 'sign_out',
  BAN: 'ban',
  UNBAN: 'unban',
} as const;

export type LOG_ACTION = (typeof LOG_ACTION)[keyof typeof LOG_ACTION];

export const DB_TABLE = {
  ACCOUNT: 'account',
  AUDIT: 'audit',
  INVITATION: 'invitation',
  MEMBER: 'member',
  ORGANIZATION: 'organization',
  SESSION: 'session',
  SETTING: 'setting',
  USER: 'user',
  VERIFICATION: 'verification',
  BOX: 'box',
  ITEM: 'item',
} as const;

export type DB_TABLE = (typeof DB_TABLE)[keyof typeof DB_TABLE];

export const ROLE_NAME = {
  ADMIN: 'admin',
  USER: 'user',
  MEMBER: 'member',
  OWNER: 'owner',
} as const;

export type ROLE_NAME = (typeof ROLE_NAME)[keyof typeof ROLE_NAME];

export const INVITE_STATUS = {
  PENDING: 'pending',
  ACCEPT: 'accepted',
  REJECT: 'rejected',
  CANCELED: 'canceled',
  EXPIRED: 'expired',
} as const;

export type INVITE_STATUS = (typeof INVITE_STATUS)[keyof typeof INVITE_STATUS];

export const NOTIFICATION_TYPE = {
  SYSTEM: 'system',
  ERROR: 'error',
  INVITATION: 'invitation',
  HOUSE: 'house',
  EXPIRED: 'expired',
} as const;

export type NOTIFICATION_TYPE =
  (typeof NOTIFICATION_TYPE)[keyof typeof NOTIFICATION_TYPE];
