# Generated by Django 5.0.1 on 2025-10-04 03:02

import django.db.models.deletion
import uuid
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('artworks', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Artwork3DSession',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('session_key', models.CharField(max_length=100)),
                ('started_at', models.DateTimeField(auto_now_add=True)),
                ('ended_at', models.DateTimeField(blank=True, null=True)),
                ('duration', models.IntegerField(default=0, help_text='Durée en secondes')),
                ('interactions_count', models.IntegerField(default=0)),
                ('hotspots_viewed', models.JSONField(blank=True, default=list)),
                ('zoom_count', models.IntegerField(default=0)),
                ('device_type', models.CharField(choices=[('desktop', 'Ordinateur'), ('mobile', 'Mobile'), ('tablet', 'Tablette'), ('vr', 'Casque VR')], default='desktop', max_length=20)),
                ('artwork', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='view_3d_sessions', to='artworks.artwork')),
                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Session 3D',
                'verbose_name_plural': 'Sessions 3D',
                'ordering': ['-started_at'],
            },
        ),
        migrations.CreateModel(
            name='Artwork3DView',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('panorama_image', models.ImageField(help_text="Image panoramique 360° autour de l'œuvre", upload_to='artworks/360/')),
                ('initial_yaw', models.FloatField(default=0, help_text='Rotation horizontale initiale (0-360°)')),
                ('initial_pitch', models.FloatField(default=0, help_text='Rotation verticale initiale (-90 à 90°)')),
                ('initial_fov', models.FloatField(default=75, help_text='Champ de vision initial (30-120°)')),
                ('hotspots_data', models.JSONField(blank=True, default=list, help_text="Liste des points d'intérêt sur l'œuvre")),
                ('ambient_audio', models.FileField(blank=True, help_text="Son d'ambiance pour cette vue 3D", null=True, upload_to='artworks/audio/ambient/')),
                ('allow_zoom', models.BooleanField(default=True)),
                ('allow_rotation', models.BooleanField(default=True)),
                ('show_controls', models.BooleanField(default=True)),
                ('auto_rotate', models.BooleanField(default=False)),
                ('auto_rotate_speed', models.FloatField(default=2.0)),
                ('is_active', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('artwork', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='view_3d', to='artworks.artwork')),
            ],
            options={
                'verbose_name': "Vue 3D d'œuvre",
                'verbose_name_plural': "Vues 3D d'œuvres",
            },
        ),
        migrations.CreateModel(
            name='ArtworkDetailPoint',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(max_length=200)),
                ('description', models.TextField()),
                ('pitch', models.FloatField(help_text='Position verticale (-90 à 90°)')),
                ('yaw', models.FloatField(help_text='Position horizontale (0-360°)')),
                ('detail_image', models.ImageField(blank=True, help_text='Image haute résolution de ce détail', null=True, upload_to='artworks/details/')),
                ('point_type', models.CharField(choices=[('info', 'Information'), ('zoom', 'Zoom'), ('detail', 'Détail technique'), ('history', 'Contexte historique'), ('video', 'Vidéo')], default='info', max_length=20)),
                ('order', models.IntegerField(default=0)),
                ('is_active', models.BooleanField(default=True)),
                ('view_3d', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='detail_points', to='artworks.artwork3dview')),
            ],
            options={
                'verbose_name': 'Point de détail',
                'verbose_name_plural': 'Points de détail',
                'ordering': ['order'],
            },
        ),
    ]
