import { defineMessages } from '@vintl/vintl'

export const commonMessages = defineMessages({
  allProjectType: {
    id: 'project-type.all',
    defaultMessage: 'All',
  },
  cancelButton: {
    id: 'button.cancel',
    defaultMessage: 'Cancel',
  },
  collectionsLabel: {
    id: 'label.collections',
    defaultMessage: 'Collections',
  },
  continueButton: {
    id: 'button.continue',
    defaultMessage: 'Continue',
  },
  nextButton: {
    id: 'button.next',
    defaultMessage: 'Next',
  },
  backButton: {
    id: 'button.back',
    defaultMessage: 'Back',
  },
  copyIdButton: {
    id: 'button.copy-id',
    defaultMessage: 'Copy ID',
  },
  copyPermalinkButton: {
    id: 'button.copy-permalink',
    defaultMessage: 'Copy permanent link',
  },
  changesSavedLabel: {
    id: 'label.changes-saved',
    defaultMessage: 'Changes saved',
  },
  createAProjectButton: {
    id: 'button.create-a-project',
    defaultMessage: 'Create a project',
  },
  createdAgoLabel: {
    id: 'label.created-ago',
    defaultMessage: 'Created {ago}',
  },
  dashboardLabel: {
    id: 'label.dashboard',
    defaultMessage: 'Dashboard',
  },
  dateAtTimeTooltip: {
    id: 'tooltip.date-at-time',
    defaultMessage: '{date, date, long} at {time, time, short}',
  },
  deleteLabel: {
    id: 'label.delete',
    defaultMessage: 'Delete',
  },
  descriptionLabel: {
    id: 'label.description',
    defaultMessage: 'Description',
  },
  downloadButton: {
    id: 'button.download',
    defaultMessage: 'Download',
  },
  downloadingButton: {
    id: 'button.downloading',
    defaultMessage: 'Downloading',
  },
  editButton: {
    id: 'button.edit',
    defaultMessage: 'Edit',
  },
  errorLabel: {
    id: 'label.error',
    defaultMessage: 'Error',
  },
  errorNotificationTitle: {
    id: 'notification.error.title',
    defaultMessage: 'An error occurred',
  },
  followedProjectsLabel: {
    id: 'label.followed-projects',
    defaultMessage: 'Followed projects',
  },
  galleryInputView: {
    id: 'input.view.gallery',
    defaultMessage: 'Gallery view',
  },
  gridInputView: {
    id: 'input.view.grid',
    defaultMessage: 'Grid view',
  },
  listInputView: {
    id: 'input.view.list',
    defaultMessage: 'Rows view',
  },
  loadingLabel: {
    id: 'label.loading',
    defaultMessage: 'Loading...',
  },
  moderationLabel: {
    id: 'label.moderation',
    defaultMessage: 'Moderation',
  },
  notificationsLabel: {
    id: 'label.notifications',
    defaultMessage: 'Notifications',
  },
  playButton: {
    id: 'button.play',
    defaultMessage: 'Play',
  },
  playedLabel: {
    id: 'label.played',
    defaultMessage: 'Played {time}',
  },
  privateLabel: {
    id: 'collection.label.private',
    defaultMessage: 'Private',
  },
  publicLabel: {
    id: 'label.public',
    defaultMessage: 'Public',
  },
  refreshButton: {
    id: 'button.refresh',
    defaultMessage: 'Refresh',
  },
  rejectedLabel: {
    id: 'label.rejected',
    defaultMessage: 'Rejected',
  },
  removeButton: {
    id: 'button.remove',
    defaultMessage: 'Remove',
  },
  reportButton: {
    id: 'button.report',
    defaultMessage: 'Report',
  },
  openFolderButton: {
    id: 'button.open-folder',
    defaultMessage: 'Open folder',
  },
  passwordLabel: {
    id: 'label.password',
    defaultMessage: 'Password',
  },
  saveButton: {
    id: 'button.save',
    defaultMessage: 'Save',
  },
  saveChangesButton: {
    id: 'button.save-changes',
    defaultMessage: 'Save changes',
  },
  scopesLabel: {
    id: 'label.scopes',
    defaultMessage: 'Scopes',
  },
  serverLabel: {
    id: 'label.server',
    defaultMessage: 'Server',
  },
  serversLabel: {
    id: 'label.servers',
    defaultMessage: 'Servers',
  },
  settingsLabel: {
    id: 'label.settings',
    defaultMessage: 'Settings',
  },
  signInButton: {
    id: 'button.sign-in',
    defaultMessage: 'Sign in',
  },
  signOutButton: {
    id: 'button.sign-out',
    defaultMessage: 'Sign out',
  },
  singleplayerLabel: {
    id: 'label.singleplayer',
    defaultMessage: 'Singleplayer',
  },
  stopButton: {
    id: 'button.stop',
    defaultMessage: 'Stop',
  },
  titleLabel: {
    id: 'label.title',
    defaultMessage: 'Title',
  },
  unlistedLabel: {
    id: 'label.unlisted',
    defaultMessage: 'Unlisted',
  },
  uploadImageButton: {
    id: 'button.upload-image',
    defaultMessage: 'Upload image',
  },
  removeImageButton: {
    id: 'button.remove-image',
    defaultMessage: 'Remove image',
  },
  visibilityLabel: {
    id: 'label.visibility',
    defaultMessage: 'Visibility',
  },
  visitYourProfile: {
    id: 'label.visit-your-profile',
    defaultMessage: 'Visit your profile',
  },
  paymentMethodCardDisplay: {
    id: 'omorphia.component.purchase_modal.payment_method_card_display',
    defaultMessage: '{card_brand} ending in {last_four}',
  },
})

export const commonSettingsMessages = defineMessages({
  appearance: {
    id: 'settings.appearance.title',
    defaultMessage: 'Appearance',
  },
  language: {
    id: 'settings.language.title',
    defaultMessage: 'Language',
  },
  profile: {
    id: 'settings.profile.title',
    defaultMessage: 'Public profile',
  },
  account: {
    id: 'settings.account.title',
    defaultMessage: 'Account and security',
  },
  authorizedApps: {
    id: 'settings.authorized-apps.title',
    defaultMessage: 'Authorized apps',
  },
  sessions: {
    id: 'settings.sessions.title',
    defaultMessage: 'Sessions',
  },
  pats: {
    id: 'settings.pats.title',
    defaultMessage: 'Personal access tokens',
  },
  applications: {
    id: 'settings.applications.title',
    defaultMessage: 'Your applications',
  },
  billing: {
    id: 'settings.billing.title',
    defaultMessage: 'Billing and subscriptions',
  },
})

export const paymentMethodMessages = defineMessages({
  visa: {
    id: 'omorphia.component.purchase_modal.payment_method_type.visa',
    defaultMessage: 'Visa',
  },
  amex: {
    id: 'omorphia.component.purchase_modal.payment_method_type.amex',
    defaultMessage: 'American Express',
  },
  diners: {
    id: 'omorphia.component.purchase_modal.payment_method_type.diners',
    defaultMessage: 'Diners Club',
  },
  discover: {
    id: 'omorphia.component.purchase_modal.payment_method_type.discover',
    defaultMessage: 'Discover',
  },
  eftpos: {
    id: 'omorphia.component.purchase_modal.payment_method_type.eftpos',
    defaultMessage: 'EFTPOS',
  },
  jcb: { id: 'omorphia.component.purchase_modal.payment_method_type.jcb', defaultMessage: 'JCB' },
  mastercard: {
    id: 'omorphia.component.purchase_modal.payment_method_type.mastercard',
    defaultMessage: 'MasterCard',
  },
  unionpay: {
    id: 'omorphia.component.purchase_modal.payment_method_type.unionpay',
    defaultMessage: 'UnionPay',
  },
  paypal: {
    id: 'omorphia.component.purchase_modal.payment_method_type.paypal',
    defaultMessage: 'PayPal',
  },
  cashapp: {
    id: 'omorphia.component.purchase_modal.payment_method_type.cashapp',
    defaultMessage: 'Cash App',
  },
  amazon_pay: {
    id: 'omorphia.component.purchase_modal.payment_method_type.amazon_pay',
    defaultMessage: 'Amazon Pay',
  },
  unknown: {
    id: 'omorphia.component.purchase_modal.payment_method_type.unknown',
    defaultMessage: 'Unknown payment method',
  },
})
