Coverage for src/django_audit_log/migrations/0001_initial.py: 100%
6 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-02 11:43 +0700
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-02 11:43 +0700
1# Generated by Django 5.1.7 on 2025-04-02 06:58
3import django.db.models.deletion
4from django.db import migrations, models
7class Migration(migrations.Migration):
9 initial = True
11 dependencies = [
12 ]
14 operations = [
15 migrations.CreateModel(
16 name='LogUser',
17 fields=[
18 ('id', models.IntegerField(primary_key=True, serialize=False)),
19 ('user_name', models.CharField(blank=True, max_length=1024)),
20 ],
21 options={
22 'verbose_name': 'Log User',
23 'verbose_name_plural': 'Log Users',
24 },
25 ),
26 migrations.CreateModel(
27 name='LogIpAddress',
28 fields=[
29 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
30 ('address', models.GenericIPAddressField()),
31 ],
32 options={
33 'verbose_name': 'Log IP Address',
34 'verbose_name_plural': 'Log IP Addresses',
35 'indexes': [models.Index(fields=['address'], name='django_audi_address_fec711_idx')],
36 },
37 ),
38 migrations.CreateModel(
39 name='LogPath',
40 fields=[
41 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
42 ('path', models.CharField(blank=True, max_length=4096)),
43 ],
44 options={
45 'verbose_name': 'Log Path',
46 'verbose_name_plural': 'Log Paths',
47 'indexes': [models.Index(fields=['path'], name='django_audi_path_6a20fe_idx')],
48 },
49 ),
50 migrations.CreateModel(
51 name='LogSessionKey',
52 fields=[
53 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
54 ('key', models.CharField(blank=True, max_length=1024)),
55 ],
56 options={
57 'verbose_name': 'Log Session Key',
58 'verbose_name_plural': 'Log Session Keys',
59 'indexes': [models.Index(fields=['key'], name='django_audi_key_63f27b_idx')],
60 },
61 ),
62 migrations.CreateModel(
63 name='AccessLog',
64 fields=[
65 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
66 ('method', models.CharField(blank=True, max_length=8)),
67 ('data', models.JSONField(help_text='Payload')),
68 ('status_code', models.IntegerField(blank=True, help_text='Response code (200=OK)', null=True)),
69 ('timestamp', models.DateTimeField(auto_now_add=True, db_index=True)),
70 ('ip', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='django_audit_log.logipaddress')),
71 ('path', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='django_audit_log.logpath')),
72 ('referrer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='refers', to='django_audit_log.logpath')),
73 ('response_url', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='response', to='django_audit_log.logpath')),
74 ('session_key', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='django_audit_log.logsessionkey')),
75 ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='django_audit_log.loguser')),
76 ],
77 options={
78 'verbose_name': 'Access Log',
79 'verbose_name_plural': 'Access Logs',
80 'ordering': ['-timestamp'],
81 'indexes': [models.Index(fields=['timestamp'], name='django_audi_timesta_476d24_idx'), models.Index(fields=['method'], name='django_audi_method_0089b9_idx'), models.Index(fields=['status_code'], name='django_audi_status__70951b_idx')],
82 },
83 ),
84 ]