Python · 3944 bytes Raw Blame History
1 # Generated by Django 5.2.3 on 2025-06-14 18:26
2
3 import django.db.models.deletion
4 from django.db import migrations, models
5
6
7 class Migration(migrations.Migration):
8
9 initial = True
10
11 dependencies = []
12
13 operations = [
14 migrations.CreateModel(
15 name="FileSystemTree",
16 fields=[
17 (
18 "id",
19 models.BigAutoField(
20 auto_created=True,
21 primary_key=True,
22 serialize=False,
23 verbose_name="ID",
24 ),
25 ),
26 ("name", models.CharField(default="FHS Tree", max_length=100)),
27 ("created_at", models.DateTimeField(auto_now_add=True)),
28 ("seed", models.IntegerField(default=0)),
29 ("mole_location", models.CharField(blank=True, max_length=500)),
30 ("player_location", models.CharField(default="/home", max_length=500)),
31 ("is_completed", models.BooleanField(default=False)),
32 ("completed_at", models.DateTimeField(blank=True, null=True)),
33 ("tree_data", models.JSONField(blank=True, null=True)),
34 ],
35 ),
36 migrations.CreateModel(
37 name="GameSession",
38 fields=[
39 (
40 "id",
41 models.BigAutoField(
42 auto_created=True,
43 primary_key=True,
44 serialize=False,
45 verbose_name="ID",
46 ),
47 ),
48 ("player_name", models.CharField(default="Anonymous", max_length=100)),
49 ("started_at", models.DateTimeField(auto_now_add=True)),
50 ("completed_at", models.DateTimeField(blank=True, null=True)),
51 ("commands_used", models.IntegerField(default=0)),
52 ("directories_visited", models.IntegerField(default=0)),
53 ("time_taken", models.DurationField(blank=True, null=True)),
54 ("command_history", models.JSONField(default=list)),
55 (
56 "tree",
57 models.ForeignKey(
58 on_delete=django.db.models.deletion.CASCADE,
59 related_name="sessions",
60 to="trees.filesystemtree",
61 ),
62 ),
63 ],
64 ),
65 migrations.CreateModel(
66 name="DirectoryNode",
67 fields=[
68 (
69 "id",
70 models.BigAutoField(
71 auto_created=True,
72 primary_key=True,
73 serialize=False,
74 verbose_name="ID",
75 ),
76 ),
77 ("name", models.CharField(max_length=100)),
78 ("path", models.CharField(db_index=True, max_length=500)),
79 ("is_fhs_standard", models.BooleanField(default=False)),
80 ("description", models.TextField(blank=True)),
81 (
82 "parent",
83 models.ForeignKey(
84 blank=True,
85 null=True,
86 on_delete=django.db.models.deletion.CASCADE,
87 related_name="children",
88 to="trees.directorynode",
89 ),
90 ),
91 (
92 "tree",
93 models.ForeignKey(
94 on_delete=django.db.models.deletion.CASCADE,
95 related_name="nodes",
96 to="trees.filesystemtree",
97 ),
98 ),
99 ],
100 options={
101 "ordering": ["path"],
102 "unique_together": {("tree", "path")},
103 },
104 ),
105 ]