bb-plane-fork/apiserver/plane/db/migrations/0001_initial.py

2490 lines
88 KiB
Python

# Generated by Django 3.2.14 on 2022-10-26 19:37
from django.conf import settings
import django.contrib.auth.models
import django.contrib.postgres.fields
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
("auth", "0012_alter_user_first_name_max_length"),
]
operations = [
migrations.CreateModel(
name="User",
fields=[
(
"password",
models.CharField(max_length=128, verbose_name="password"),
),
(
"last_login",
models.DateTimeField(
blank=True, null=True, verbose_name="last login"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("username", models.CharField(max_length=128, unique=True)),
(
"mobile_number",
models.CharField(blank=True, max_length=255, null=True),
),
(
"email",
models.CharField(
blank=True, max_length=255, null=True, unique=True
),
),
("first_name", models.CharField(blank=True, max_length=255)),
("last_name", models.CharField(blank=True, max_length=255)),
("avatar", models.CharField(blank=True, max_length=255)),
(
"date_joined",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"last_location",
models.CharField(blank=True, max_length=255),
),
(
"created_location",
models.CharField(blank=True, max_length=255),
),
("is_superuser", models.BooleanField(default=False)),
("is_managed", models.BooleanField(default=False)),
("is_password_expired", models.BooleanField(default=False)),
("is_active", models.BooleanField(default=True)),
("is_staff", models.BooleanField(default=False)),
("is_email_verified", models.BooleanField(default=False)),
("is_password_autoset", models.BooleanField(default=False)),
("is_onboarded", models.BooleanField(default=False)),
("token", models.CharField(blank=True, max_length=64)),
(
"billing_address_country",
models.CharField(default="INDIA", max_length=255),
),
("billing_address", models.JSONField(null=True)),
("has_billing_address", models.BooleanField(default=False)),
(
"user_timezone",
models.CharField(default="Asia/Kolkata", max_length=255),
),
(
"last_active",
models.DateTimeField(
default=django.utils.timezone.now, null=True
),
),
("last_login_time", models.DateTimeField(null=True)),
("last_logout_time", models.DateTimeField(null=True)),
(
"last_login_ip",
models.CharField(blank=True, max_length=255),
),
(
"last_logout_ip",
models.CharField(blank=True, max_length=255),
),
(
"last_login_medium",
models.CharField(default="email", max_length=20),
),
("last_login_uagent", models.TextField(blank=True)),
("token_updated_at", models.DateTimeField(null=True)),
("last_workspace_id", models.UUIDField(null=True)),
(
"groups",
models.ManyToManyField(
blank=True,
help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.",
related_name="user_set",
related_query_name="user",
to="auth.Group",
verbose_name="groups",
),
),
(
"user_permissions",
models.ManyToManyField(
blank=True,
help_text="Specific permissions for this user.",
related_name="user_set",
related_query_name="user",
to="auth.Permission",
verbose_name="user permissions",
),
),
],
options={
"verbose_name": "User",
"verbose_name_plural": "Users",
"db_table": "user",
"ordering": ("-created_at",),
},
managers=[
("objects", django.contrib.auth.models.UserManager()),
],
),
migrations.CreateModel(
name="Cycle",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(
max_length=255, verbose_name="Cycle Name"
),
),
(
"description",
models.TextField(
blank=True, verbose_name="Cycle Description"
),
),
("start_date", models.DateField(verbose_name="Start Date")),
("end_date", models.DateField(verbose_name="End Date")),
(
"status",
models.CharField(
choices=[
("started", "Started"),
("completed", "Completed"),
],
max_length=255,
verbose_name="Cycle Status",
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="cycle_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"owned_by",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="owned_by_cycle",
to=settings.AUTH_USER_MODEL,
),
),
],
options={
"verbose_name": "Cycle",
"verbose_name_plural": "Cycles",
"db_table": "cycle",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="Issue",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(
max_length=255, verbose_name="Issue Name"
),
),
(
"description",
models.JSONField(
blank=True, verbose_name="Issue Description"
),
),
(
"priority",
models.CharField(
blank=True,
choices=[
("urgent", "Urgent"),
("high", "High"),
("medium", "Medium"),
("low", "Low"),
],
max_length=30,
null=True,
verbose_name="Issue Priority",
),
),
("start_date", models.DateField(blank=True, null=True)),
("target_date", models.DateField(blank=True, null=True)),
(
"sequence_id",
models.IntegerField(
default=1, verbose_name="Issue Sequence ID"
),
),
(
"attachments",
django.contrib.postgres.fields.ArrayField(
base_field=models.URLField(),
blank=True,
default=list,
size=10,
),
),
],
options={
"verbose_name": "Issue",
"verbose_name_plural": "Issues",
"db_table": "issue",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="Project",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(
max_length=255, verbose_name="Project Name"
),
),
(
"description",
models.TextField(
blank=True, verbose_name="Project Description"
),
),
(
"description_rt",
models.JSONField(
blank=True,
null=True,
verbose_name="Project Description RT",
),
),
(
"description_html",
models.JSONField(
blank=True,
null=True,
verbose_name="Project Description HTML",
),
),
(
"network",
models.PositiveSmallIntegerField(
choices=[(0, "Secret"), (2, "Public")], default=2
),
),
(
"identifier",
models.CharField(
blank=True,
max_length=5,
null=True,
verbose_name="Project Identifier",
),
),
("slug", models.SlugField(blank=True, max_length=100)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="project_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"default_assignee",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="default_assignee",
to=settings.AUTH_USER_MODEL,
),
),
(
"project_lead",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="project_lead",
to=settings.AUTH_USER_MODEL,
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="project_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
],
options={
"verbose_name": "Project",
"verbose_name_plural": "Projects",
"db_table": "project",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="Team",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(max_length=255, verbose_name="Team Name"),
),
(
"description",
models.TextField(
blank=True, verbose_name="Team Description"
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="team_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
],
options={
"verbose_name": "Team",
"verbose_name_plural": "Teams",
"db_table": "team",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="Workspace",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(
max_length=255, verbose_name="Workspace Name"
),
),
(
"logo",
models.URLField(
blank=True, null=True, verbose_name="Logo"
),
),
("slug", models.SlugField(max_length=100, unique=True)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="workspace_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"owner",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="owner_workspace",
to=settings.AUTH_USER_MODEL,
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="workspace_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
],
options={
"verbose_name": "Workspace",
"verbose_name_plural": "Workspaces",
"db_table": "workspace",
"ordering": ("-created_at",),
"unique_together": {("name", "owner")},
},
),
migrations.CreateModel(
name="WorkspaceMemberInvite",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("email", models.CharField(max_length=255)),
("accepted", models.BooleanField(default=False)),
("token", models.CharField(max_length=255)),
("message", models.TextField(null=True)),
("responded_at", models.DateTimeField(null=True)),
(
"role",
models.PositiveSmallIntegerField(
choices=[
(20, "Owner"),
(15, "Admin"),
(10, "Member"),
(5, "Guest"),
],
default=10,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="workspacememberinvite_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="workspacememberinvite_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_member_invite",
to="db.workspace",
),
),
],
options={
"verbose_name": "Workspace Member Invite",
"verbose_name_plural": "Workspace Member Invites",
"db_table": "workspace_member_invite",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="View",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(max_length=255, verbose_name="View Name"),
),
(
"description",
models.TextField(
blank=True, verbose_name="View Description"
),
),
("query", models.JSONField(verbose_name="View Query")),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="view_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_view",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="view_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_view",
to="db.workspace",
),
),
],
options={
"verbose_name": "View",
"verbose_name_plural": "Views",
"db_table": "view",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="TimelineIssue",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("sequence_id", models.FloatField(default=1.0)),
("links", models.JSONField(blank=True, default=dict)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="timelineissue_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"issue",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_timeline",
to="db.issue",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_timelineissue",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="timelineissue_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_timelineissue",
to="db.workspace",
),
),
],
options={
"verbose_name": "Timeline Issue",
"verbose_name_plural": "Timeline Issues",
"db_table": "issue_timeline",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="TeamMember",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="teammember_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"member",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="team_member",
to=settings.AUTH_USER_MODEL,
),
),
(
"team",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="team_member",
to="db.team",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="teammember_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="team_member",
to="db.workspace",
),
),
],
options={
"verbose_name": "Team Member",
"verbose_name_plural": "Team Members",
"db_table": "team_member",
"ordering": ("-created_at",),
"unique_together": {("team", "member")},
},
),
migrations.AddField(
model_name="team",
name="members",
field=models.ManyToManyField(
blank=True,
related_name="members",
through="db.TeamMember",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AddField(
model_name="team",
name="updated_by",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="team_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
migrations.AddField(
model_name="team",
name="workspace",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_team",
to="db.workspace",
),
),
migrations.CreateModel(
name="State",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(
max_length=255, verbose_name="State Name"
),
),
(
"description",
models.TextField(
blank=True, verbose_name="State Description"
),
),
(
"color",
models.CharField(
max_length=255, verbose_name="State Color"
),
),
("slug", models.SlugField(blank=True, max_length=100)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="state_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_state",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="state_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_state",
to="db.workspace",
),
),
],
options={
"verbose_name": "State",
"verbose_name_plural": "States",
"db_table": "state",
"ordering": ("-created_at",),
"unique_together": {("name", "project")},
},
),
migrations.CreateModel(
name="SocialLoginConnection",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"medium",
models.CharField(
choices=[("Google", "google"), ("Github", "github")],
default=None,
max_length=20,
),
),
(
"last_login_at",
models.DateTimeField(
default=django.utils.timezone.now, null=True
),
),
(
"last_received_at",
models.DateTimeField(
default=django.utils.timezone.now, null=True
),
),
("token_data", models.JSONField(null=True)),
("extra_data", models.JSONField(null=True)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="socialloginconnection_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="socialloginconnection_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"user",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="user_login_connections",
to=settings.AUTH_USER_MODEL,
),
),
],
options={
"verbose_name": "Social Login Connection",
"verbose_name_plural": "Social Login Connections",
"db_table": "social_login_connection",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="Shortcut",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"name",
models.CharField(
max_length=255, verbose_name="Cycle Name"
),
),
(
"description",
models.TextField(
blank=True, verbose_name="Cycle Description"
),
),
(
"type",
models.CharField(
choices=[("repo", "Repo"), ("direct", "Direct")],
max_length=255,
verbose_name="Shortcut Type",
),
),
(
"url",
models.URLField(blank=True, null=True, verbose_name="URL"),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="shortcut_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_shortcut",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="shortcut_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_shortcut",
to="db.workspace",
),
),
],
options={
"verbose_name": "Shortcut",
"verbose_name_plural": "Shortcuts",
"db_table": "shortcut",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="ProjectMemberInvite",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("email", models.CharField(max_length=255)),
("accepted", models.BooleanField(default=False)),
("token", models.CharField(max_length=255)),
("message", models.TextField(null=True)),
("responded_at", models.DateTimeField(null=True)),
(
"role",
models.PositiveSmallIntegerField(
choices=[
(20, "Admin"),
(15, "Member"),
(10, "Viewer"),
(5, "Guest"),
],
default=10,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projectmemberinvite_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_projectmemberinvite",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projectmemberinvite_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_projectmemberinvite",
to="db.workspace",
),
),
],
options={
"verbose_name": "Project Member Invite",
"verbose_name_plural": "Project Member Invites",
"db_table": "project_member_invite",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="ProjectIdentifier",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
("name", models.CharField(max_length=10)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projectidentifier_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_identifier",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projectidentifier_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
],
options={
"verbose_name": "Project Identifier",
"verbose_name_plural": "Project Identifiers",
"db_table": "project_identifier",
"ordering": ("-created_at",),
},
),
migrations.AddField(
model_name="project",
name="workspace",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_project",
to="db.workspace",
),
),
migrations.CreateModel(
name="Label",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("name", models.CharField(max_length=255)),
("description", models.TextField(blank=True)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="label_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_label",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="label_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_label",
to="db.workspace",
),
),
],
options={
"verbose_name": "Label",
"verbose_name_plural": "Labels",
"db_table": "label",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="IssueSequence",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("sequence", models.PositiveBigIntegerField(default=1)),
("deleted", models.BooleanField(default=False)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issuesequence_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"issue",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issue_sequence",
to="db.issue",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issuesequence",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issuesequence_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issuesequence",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Sequence",
"verbose_name_plural": "Issue Sequences",
"db_table": "issue_sequence",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="IssueProperty",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("properties", models.JSONField(default=dict)),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueproperty_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issueproperty",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueproperty_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"user",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_property_user",
to=settings.AUTH_USER_MODEL,
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issueproperty",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Property",
"verbose_name_plural": "Issue Properties",
"db_table": "issue_property",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="IssueLabel",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issuelabel_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"issue",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="label_issue",
to="db.issue",
),
),
(
"label",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="label_issue",
to="db.label",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issuelabel",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issuelabel_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issuelabel",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Label",
"verbose_name_plural": "Issue Labels",
"db_table": "issue_label",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="IssueComment",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"comment",
models.TextField(blank=True, verbose_name="Comment"),
),
(
"attachments",
django.contrib.postgres.fields.ArrayField(
base_field=models.URLField(),
blank=True,
default=list,
size=10,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issuecomment_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"issue",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="db.issue",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issuecomment",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issuecomment_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issuecomment",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Comment",
"verbose_name_plural": "Issue Comments",
"db_table": "issue_comment",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="IssueBlocker",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"block",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="blocker_issues",
to="db.issue",
),
),
(
"blocked_by",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="blocked_issues",
to="db.issue",
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueblocker_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issueblocker",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueblocker_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issueblocker",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Blocker",
"verbose_name_plural": "Issue Blockers",
"db_table": "issue_blocker",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="IssueAssignee",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"assignee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_assignee",
to=settings.AUTH_USER_MODEL,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueassignee_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"issue",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_assignee",
to="db.issue",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issueassignee",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueassignee_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issueassignee",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Assignee",
"verbose_name_plural": "Issue Assignees",
"db_table": "issue_assignee",
"ordering": ("-created_at",),
"unique_together": {("issue", "assignee")},
},
),
migrations.CreateModel(
name="IssueActivity",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"verb",
models.CharField(
default="created",
max_length=255,
verbose_name="Action",
),
),
(
"field",
models.CharField(
blank=True,
max_length=255,
null=True,
verbose_name="Field Name",
),
),
(
"old_value",
models.CharField(
blank=True,
max_length=255,
null=True,
verbose_name="Old Value",
),
),
(
"new_value",
models.CharField(
blank=True,
max_length=255,
null=True,
verbose_name="New Value",
),
),
(
"comment",
models.TextField(blank=True, verbose_name="Comment"),
),
(
"attachments",
django.contrib.postgres.fields.ArrayField(
base_field=models.URLField(),
blank=True,
default=list,
size=10,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueactivity_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"issue",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_activity",
to="db.issue",
),
),
(
"issue_comment",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issue_comment",
to="db.issuecomment",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issueactivity",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issueactivity_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issueactivity",
to="db.workspace",
),
),
],
options={
"verbose_name": "Issue Activity",
"verbose_name_plural": "Issue Activities",
"db_table": "issue_activity",
"ordering": ("-created_at",),
},
),
migrations.AddField(
model_name="issue",
name="assignees",
field=models.ManyToManyField(
blank=True,
related_name="assignee",
through="db.IssueAssignee",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AddField(
model_name="issue",
name="created_by",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issue_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
migrations.AddField(
model_name="issue",
name="labels",
field=models.ManyToManyField(
blank=True,
related_name="labels",
through="db.IssueLabel",
to="db.Label",
),
),
migrations.AddField(
model_name="issue",
name="parent",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="parent_issue",
to="db.issue",
),
),
migrations.AddField(
model_name="issue",
name="project",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_issue",
to="db.project",
),
),
migrations.AddField(
model_name="issue",
name="state",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="state_issue",
to="db.state",
),
),
migrations.AddField(
model_name="issue",
name="updated_by",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="issue_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
migrations.AddField(
model_name="issue",
name="workspace",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_issue",
to="db.workspace",
),
),
migrations.CreateModel(
name="FileAsset",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("attributes", models.JSONField(default=dict)),
("asset", models.FileField(upload_to="library-assets")),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="fileasset_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="fileasset_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
],
options={
"verbose_name": "File Asset",
"verbose_name_plural": "File Assets",
"db_table": "file_asset",
"ordering": ("-created_at",),
},
),
migrations.CreateModel(
name="CycleIssue",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="cycleissue_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"cycle",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_cycle",
to="db.cycle",
),
),
(
"issue",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="issue_cycle",
to="db.issue",
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_cycleissue",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="cycleissue_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_cycleissue",
to="db.workspace",
),
),
],
options={
"verbose_name": "Cycle Issue",
"verbose_name_plural": "Cycle Issues",
"db_table": "cycle_issue",
"ordering": ("-created_at",),
},
),
migrations.AddField(
model_name="cycle",
name="project",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_cycle",
to="db.project",
),
),
migrations.AddField(
model_name="cycle",
name="updated_by",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="cycle_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
migrations.AddField(
model_name="cycle",
name="workspace",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_cycle",
to="db.workspace",
),
),
migrations.CreateModel(
name="WorkspaceMember",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
(
"role",
models.PositiveSmallIntegerField(
choices=[
(20, "Owner"),
(15, "Admin"),
(10, "Member"),
(5, "Guest"),
],
default=10,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="workspacemember_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"member",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="member_workspace",
to=settings.AUTH_USER_MODEL,
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="workspacemember_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_member",
to="db.workspace",
),
),
],
options={
"verbose_name": "Workspace Member",
"verbose_name_plural": "Workspace Members",
"db_table": "workspace_member",
"ordering": ("-created_at",),
"unique_together": {("workspace", "member")},
},
),
migrations.AlterUniqueTogether(
name="team",
unique_together={("name", "workspace")},
),
migrations.CreateModel(
name="ProjectMember",
fields=[
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Created At"
),
),
(
"updated_at",
models.DateTimeField(
auto_now=True, verbose_name="Last Modified At"
),
),
(
"id",
models.UUIDField(
db_index=True,
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
unique=True,
),
),
("comment", models.TextField(blank=True, null=True)),
(
"role",
models.PositiveSmallIntegerField(
choices=[
(20, "Admin"),
(15, "Member"),
(10, "Viewer"),
(5, "Guest"),
],
default=10,
),
),
(
"created_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projectmember_created_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Created By",
),
),
(
"member",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="member_project",
to=settings.AUTH_USER_MODEL,
),
),
(
"project",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="project_projectmember",
to="db.project",
),
),
(
"updated_by",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="projectmember_updated_by",
to=settings.AUTH_USER_MODEL,
verbose_name="Last Modified By",
),
),
(
"workspace",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="workspace_projectmember",
to="db.workspace",
),
),
],
options={
"verbose_name": "Project Member",
"verbose_name_plural": "Project Members",
"db_table": "project_member",
"ordering": ("-created_at",),
"unique_together": {("project", "member")},
},
),
migrations.AlterUniqueTogether(
name="project",
unique_together={("name", "workspace")},
),
]