const mongoose = require('mongoose');

const heroSchema = new mongoose.Schema({
  hero: {
    title: {
      type: String,
      required: true
    },
    description: {
      type: String,
      required: true
    },
    backgroundImage: {
      type: String,
      required: true
    },
    overlayColor: {
      type: String,
      default: 'rgba(0, 0, 0, 0.35)'
    },
    enableScrollspy: {
      type: Boolean,
      default: true
    },
    backgroundPosition: {
      type: String,
      default: 'center center'
    },
    containerStyles: {
      width: { type: String, default: '98%' },
      height: { type: String, default: '130vh' },
      margin: { type: String, default: '0 auto' },
      borderRadius: { type: String, default: '2vw' },
      overflow: { type: String, default: 'hidden' },
      position: { type: String, default: 'relative' },
      top: { type: String, default: '-10vh' }
    },
    titleClass: {
      type: String,
      default: 'uk-heading-large uk-text-center uk-text-white'
    },
    titleStyles: {
      fontSize: { type: String, default: 'clamp(2rem, 5vw, 4.5rem)' },
      fontWeight: { type: String, default: 'bold' },
      lineHeight: { type: String, default: '1.2' },
      marginBottom: { type: String, default: '1.5rem' },
      color: { type: String, default: 'white' },
      textShadow: { type: String, default: '0 2px 10px rgba(0, 0, 0, 0.3)' }
    },
    descriptionClass: {
      type: String,
      default: 'uk-text-white'
    },
    descriptionStyles: {
      fontSize: { type: String, default: 'clamp(1rem, 1.5vw, 1.25rem)' },
      maxWidth: { type: String, default: '800px' },
      margin: { type: String, default: '0 auto 2rem' },
      lineHeight: { type: String, default: '1.6' },
      color: { type: String, default: 'white' },
      textShadow: { type: String, default: '0 1px 5px rgba(0, 0, 0, 0.3)' }
    }
  },
  button: {
    label: {
      type: String,
      default: 'Book Your Adventure'
    },
    href: {
      type: String,
      default: '/booking'
    },
    type: {
      type: String,
      default: 'magic'
    }
  },
  contactBox: {
    enabled: {
      type: Boolean,
      default: true
    },
    position: {
      position: { type: String, default: 'absolute' },
      bottom: { type: String, default: '3rem' },
      left: { type: String, default: '50%' },
      transform: { type: String, default: 'translateX(-50%)' },
      width: { type: String, default: '100%' },
      zIndex: { type: Number, default: 3 },
      padding: { type: String, default: '0 1rem' }
    }
  }
}, {
  timestamps: true
});

module.exports = mongoose.model('Hero', heroSchema);
