export type ShowactFieldType = 'text' | 'email' | 'url' | 'textarea' | 'select' | 'radio' | 'multiselect' | 'checkbox'

export interface ShowactFormField {
  id: string
  type: ShowactFieldType
  label: string
  placeholder: string
  helpText?: string
  required: boolean
  isArtistName: boolean
  options: string[]
  allowOther?: boolean
  maxLength: number
}

export const DEFAULT_SHOWACT_SCHEMA: ShowactFormField[] = [
  {
    id: 'artist_name',
    type: 'text',
    label: 'Wie sollen wir dich nennen?',
    placeholder: 'Dein Name',
    required: true,
    isArtistName: true,
    options: [],
    maxLength: 120,
  },
  {
    id: 'is_adult',
    type: 'radio',
    label: 'Bist du volljährig?',
    placeholder: '',
    required: true,
    isArtistName: false,
    options: ['Ja', 'Nein'],
    maxLength: 20,
  },
  {
    id: 'platform_url',
    type: 'url',
    label: 'Was ist dein Twitch/Youtube link?',
    placeholder: 'https://twitch.tv/... oder https://youtube.com/...',
    helpText: 'Disclaimer: Bitte achte darauf, dass die VODs angeschaltet sind.',
    required: true,
    isArtistName: false,
    options: [],
    maxLength: 500,
  },
  {
    id: 'contact_discord',
    type: 'text',
    label: 'Wie lautet dein Discord?',
    placeholder: 'nutzername',
    required: true,
    isArtistName: false,
    options: [],
    maxLength: 120,
  },
  {
    id: 'showact_roles',
    type: 'multiselect',
    label: 'Wofür möchtest du dich bewerben',
    placeholder: '',
    helpText: 'Du kannst dich für so viele Dinge bewerben, wie du möchtest.',
    required: true,
    isArtistName: false,
    options: [
      'Interview Gast',
      'Sänger/in',
      '3D Statist (Tänzer - ein VRM Model wird dafür benötigt)',
      '3D Statist (Hintergrund / Publikum - ein VRM Model wird dafür benötigt)',
    ],
    allowOther: true,
    maxLength: 500,
  },
  {
    id: 'interview_highlight',
    type: 'textarea',
    label: 'Wenn du interviewt werden möchtest, erzähle uns etwas über dein Highlight aus 2025. Du kannst auch Sachen hinzufügen, über die du reden möchtest.',
    placeholder: 'Wenn dies nicht auf dich zutrifft dann schreibe "N/A"',
    required: false,
    isArtistName: false,
    options: [],
    maxLength: 1500,
  },
  {
    id: 'singing_references',
    type: 'textarea',
    label: 'Wenn du dich als Sänger/in bewirbst, dann verlinke hier paar von deinen vergangenen Gesangseinlagen. Du kannst uns auch gerne was darüber erzählen.',
    placeholder: 'Wenn dies nicht auf dich zutrifft dann schreibe "N/A"',
    required: false,
    isArtistName: false,
    options: [],
    maxLength: 1500,
  },
  {
    id: 'other_role_idea',
    type: 'textarea',
    label: 'Wenn du dich für eine andere Rolle als die oben gelisteten bewerben willst, dann erzähle uns hier von deiner Idee.',
    placeholder: '',
    required: false,
    isArtistName: false,
    options: [],
    maxLength: 1500,
  },
  {
    id: 'model_boundaries',
    type: 'textarea',
    label: 'Wenn du dich als ein 3D Statist bewirbst, gäbe es etwas was dir unangenehm wäre für dein Model (beispielsweise bestimmte Tänze)?',
    placeholder: '',
    required: false,
    isArtistName: false,
    options: [],
    maxLength: 1500,
  },
  {
    id: 'additional_notes',
    type: 'textarea',
    label: 'Gibt es noch was, was du uns mitteilen möchtest?',
    placeholder: '',
    required: false,
    isArtistName: false,
    options: [],
    maxLength: 1500,
  },
  {
    id: 'rules_confirmed',
    type: 'radio',
    label: 'Hast du die Regeln gelesen und bist mit denen Einverstanden?',
    placeholder: '',
    required: true,
    isArtistName: false,
    options: ['Ja', 'Nein'],
    maxLength: 20,
  },
  {
    id: 'technical_skip_confirmed',
    type: 'checkbox',
    label: 'Dir ist bewusst, dass wir Auftritte etc. überspringen falls diese technische Schwierigkeiten haben, welche man nicht beheben kann.',
    placeholder: '',
    required: true,
    isArtistName: false,
    options: ['Ja'],
    maxLength: 20,
  },
]
