import { defineType } from 'sanity'

export default defineType({
  name: 'roomBooking',
  title: 'Room Booking',
  type: 'document',
  fields: [
    {
      name: 'roomId',
      title: 'Room ID',
      type: 'string',
      validation: Rule => Rule.required().min(1).max(20)
    },
    {
      name: 'roomType',
      title: 'Room Type',
      type: 'string',
      validation: Rule => Rule.required().min(2).max(50)
    },
    {
      name: 'price',
      title: 'Price',
      type: 'number',
      validation: Rule => Rule.required().positive()
    },
    {
      name: 'totalCount',
      title: 'Total Count',
      type: 'number',
      validation: Rule => Rule.required().integer().positive()
    },
    {
      name: 'bookingCount',
      title: 'Booking Count',
      type: 'number',
      validation: Rule => Rule.required().integer().positive().max(1000)
    },
    {
      name: 'checkInDate',
      title: 'Check-In Date',
      type: 'datetime',
      validation: Rule => Rule.required()
    },
    {
      name: 'checkOutDate',
      title: 'Check-Out Date',
      type: 'datetime',
      validation: Rule => Rule.required()
    },
    {
      name: 'guestName',
      title: 'Guest Name',
      type: 'string',
      validation: Rule => Rule.required().min(2).max(50)
    },
    {
      name: 'guestEmail',
      title: 'Guest Email',
      type: 'email',
      validation: Rule => Rule.required().email()
    },
    {
      name: 'guestPhone',
      title: 'Guest Phone',
      type: 'string',
      validation: Rule => Rule.required().min(10).max(15)
    },
    {
      name: 'paymentStatus',
      title: 'Payment Status',
      type: 'string',
      options: {
        list: [
          { title: 'Pending', value: 'pending' },
          { title: 'Completed', value: 'completed' },
          { title: 'Failed', value: 'failed' }
        ]
      },
      validation: Rule => Rule.required()
    },
    {
      name: 'note',
      title: 'Note',
      type: 'text',
      validation: Rule => Rule.max(500)
    },
    {
      name: 'capacity',
      title: 'Total',
      type: 'object',
      fields: [
        {
          name: 'adults',
          title: 'Adults',
          type: 'number',
          validation: Rule => Rule.required().integer().min(0)
        },
        {
          name: 'children',
          title: 'Children',
          type: 'number',
          validation: Rule => Rule.required().integer().min(0)
        }
      ],
      validation: Rule => Rule.required()
    }
  ]
})
