53 lines
3.0 KiB
Python
53 lines
3.0 KiB
Python
# Generated by Django 6.0.3 on 2026-03-12 10:50
|
|
|
|
import datetime
|
|
import django.db.models.deletion
|
|
import django_resized.forms
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
('django_celery_beat', '0019_alter_periodictasks_options'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='DeviceType',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=64, null=True, verbose_name='Nom du capteur')),
|
|
('code', models.SlugField(blank=True, help_text='Max 16 caractères', max_length=16, null=True, unique=True, verbose_name='Type de capteur')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Type de capteur',
|
|
'verbose_name_plural': 'Types de capteurs',
|
|
'ordering': ['name'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Device',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('label', models.CharField(max_length=100, null=True, verbose_name='Capteur')),
|
|
('uuid', models.SlugField(blank=True, help_text='Uuid iot clef unique', max_length=32, null=True, unique=True, verbose_name='Uuid')),
|
|
('index', models.SmallIntegerField(default=0, help_text="Numéro d'index", verbose_name='Index')),
|
|
('pin_active', models.BooleanField(default=True, help_text="Broche active à l'initialisation", verbose_name='Broche')),
|
|
('image', django_resized.forms.ResizedImageField(blank=True, crop=None, default='devices/vanne.png', force_format=None, help_text='Image du capteur', keep_meta=True, null=True, quality=-1, scale=None, size=[320, 240], upload_to='devices/', verbose_name='Image')),
|
|
('lifetime', models.DurationField(blank=True, default=datetime.timedelta(seconds=4500), help_text="Durée de l'évènement. Jours hh:mm:ss format", null=True, verbose_name='Durée')),
|
|
('heartbeat', models.IntegerField(default=1, help_text='Interrogation du capteur en secondes', verbose_name='Battement')),
|
|
('active', models.BooleanField(default=True, verbose_name='Actif')),
|
|
('task', models.ForeignKey(help_text='Tâche de démarrage périodique de ce capteur (optionnel)', null=True, on_delete=django.db.models.deletion.CASCADE, to='django_celery_beat.periodictask', verbose_name='Tâche périodique')),
|
|
('device_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='relay.devicetype', verbose_name='Type de capteur')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Capteur',
|
|
'verbose_name_plural': 'Capteurs',
|
|
'ordering': ['index'],
|
|
},
|
|
),
|
|
]
|