# Generated by Django 5.2.4 on 2025-09-19 09:45

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


class Migration(migrations.Migration):

    dependencies = [
        ("users", "0003_userprofile_company_userprofile_company_logo_url_and_more"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AddField(
            model_name="userprofile",
            name="two_factor_enabled",
            field=models.BooleanField(
                default=False, help_text="Whether two-factor authentication is enabled"
            ),
        ),
        migrations.CreateModel(
            name="LoginSession",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "session_key",
                    models.CharField(
                        help_text="Django session key", max_length=40, unique=True
                    ),
                ),
                (
                    "ip_address",
                    models.GenericIPAddressField(help_text="IP address of login"),
                ),
                ("user_agent", models.TextField(help_text="Browser/device user agent")),
                (
                    "device_type",
                    models.CharField(
                        blank=True,
                        help_text="Device type (Mobile, Desktop, etc.)",
                        max_length=50,
                        null=True,
                    ),
                ),
                (
                    "browser",
                    models.CharField(
                        blank=True, help_text="Browser name", max_length=100, null=True
                    ),
                ),
                (
                    "operating_system",
                    models.CharField(
                        blank=True,
                        help_text="Operating system",
                        max_length=100,
                        null=True,
                    ),
                ),
                (
                    "location",
                    models.CharField(
                        blank=True,
                        help_text="Approximate location",
                        max_length=200,
                        null=True,
                    ),
                ),
                (
                    "is_active",
                    models.BooleanField(
                        default=True, help_text="Whether session is still active"
                    ),
                ),
                ("login_time", models.DateTimeField(auto_now_add=True)),
                ("last_activity", models.DateTimeField(auto_now=True)),
                ("logout_time", models.DateTimeField(blank=True, null=True)),
                (
                    "user",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="login_sessions",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "db_table": "login_sessions",
                "ordering": ["-login_time"],
            },
        ),
    ]
