import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';

export class RestaurantSpecificationDto {
  @ApiProperty({ example: '550e8400-e29b-41d4-a716-446655440000', description: 'Restaurant ID' })
  id!: string;

  @ApiProperty({ example: 'کافه ژیوان', description: 'Restaurant name' })
  name!: string;

  @ApiProperty({ example: 'zhivan', description: 'Restaurant slug' })
  slug!: string;

  @ApiPropertyOptional({ example: 'https://example.com/logo.png', description: 'Logo URL' })
  logo?: string;

  @ApiPropertyOptional({ example: 'تهران، خیابان ولیعصر پلاک ۱۲۳', description: 'Address' })
  address?: string;

  @ApiPropertyOptional({ example: '#ff6600', description: 'Menu color (hex)' })
  menuColor?: string;

  @ApiPropertyOptional({ example: 35.6892, description: 'Latitude' })
  latitude?: number;

  @ApiPropertyOptional({ example: 51.389, description: 'Longitude' })
  longitude?: number;

  @ApiPropertyOptional({
    example: {
      type: 'Polygon',
      coordinates: [
        [
          [51.389, 35.6892],
          [51.39, 35.6892],
          [51.39, 35.6902],
          [51.389, 35.6902],
          [51.389, 35.6892],
        ],
      ],
    },
    description: 'Service area as GeoJSON Polygon',
  })
  serviceArea?: {
    type: 'Polygon';
    coordinates: number[][][];
  };

  @ApiPropertyOptional({ example: 2020, description: 'Established year' })
  establishedYear?: number;

  @ApiPropertyOptional({ example: '+989123456789', description: 'Phone number' })
  phoneNumber?: string;

  @ApiPropertyOptional({ example: '09123456789', description: 'Phone' })
  phone?: string;

  @ApiPropertyOptional({ example: 'https://instagram.com/cafemorteza', description: 'Instagram URL' })
  instagram?: string;

  @ApiPropertyOptional({ example: 'https://t.me/cafemorteza', description: 'Telegram URL' })
  telegram?: string;

  @ApiPropertyOptional({ example: 'https://wa.me/989123456789', description: 'WhatsApp URL' })
  whatsapp?: string;

  @ApiPropertyOptional({ example: 'محل دنج با بهترین قهوه شهر.', description: 'Description' })
  description?: string;

  @ApiPropertyOptional({ example: 'بهترین کافه تهران', description: 'SEO title' })
  seoTitle?: string;

  @ApiPropertyOptional({ example: 'کافه مرتضی ارائه‌دهنده قهوه با کیفیت بالا.', description: 'SEO description' })
  seoDescription?: string;

  @ApiPropertyOptional({ example: ['قهوه', 'صبحانه', 'کافه'], description: 'Tag names', type: [String] })
  tagNames?: string[];

  @ApiPropertyOptional({
    example: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg'],
    description: 'Image URLs',
    type: [String],
  })
  images?: string[];

  @ApiPropertyOptional({ example: 0.09, description: 'VAT rate (e.g., 0.09 for 9%)' })
  vat?: number;
  
  @ApiPropertyOptional({ example: { registerScore: 100 }, description: 'Score' })
  score?: {
    registerScore?: number;
  };
}
