2026-03-08 13:10:49 +00:00
import uuid
2026-02-27 12:53:19 +00:00
2026-03-08 13:10:49 +00:00
import django . db . models . deletion
2026-02-26 01:32:04 +00:00
from django . conf import settings
from django . db import migrations , models
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 ' ) ) ,
( ' is_superuser ' , models . BooleanField ( default = False , help_text = ' Designates that this user has all permissions without explicitly assigning them. ' , verbose_name = ' superuser status ' ) ) ,
( ' id ' , models . BigAutoField ( primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' uuid ' , models . UUIDField ( default = uuid . uuid4 , editable = False , verbose_name = ' UUID ' ) ) ,
( ' created_at ' , models . DateTimeField ( auto_now_add = True , verbose_name = ' Created At ' ) ) ,
( ' updated_at ' , models . DateTimeField ( auto_now = True , verbose_name = ' Updated At ' ) ) ,
( ' email_address ' , models . EmailField ( max_length = 255 , unique = True , verbose_name = ' Email Address ' ) ) ,
( ' first_name ' , models . CharField ( max_length = 255 , verbose_name = ' First Name ' ) ) ,
( ' last_name ' , models . CharField ( max_length = 255 , verbose_name = ' Last Name ' ) ) ,
( ' date_of_birth ' , models . DateField ( blank = True , null = True , verbose_name = ' Date of Birth ' ) ) ,
( ' is_active ' , models . BooleanField ( default = True , verbose_name = ' Account Active ' ) ) ,
( ' is_staff ' , models . BooleanField ( default = False , verbose_name = ' Account Admin ' ) ) ,
( ' is_manager ' , models . BooleanField ( default = False , verbose_name = ' Organization Manager ' ) ) ,
( ' 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 ' ,
} ,
) ,
migrations . CreateModel (
name = ' Organization ' ,
fields = [
( ' id ' , models . BigAutoField ( primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' uuid ' , models . UUIDField ( default = uuid . uuid4 , editable = False , verbose_name = ' UUID ' ) ) ,
( ' created_at ' , models . DateTimeField ( auto_now_add = True , verbose_name = ' Created At ' ) ) ,
( ' updated_at ' , models . DateTimeField ( auto_now = True , verbose_name = ' Updated At ' ) ) ,
( ' name ' , models . CharField ( max_length = 255 , unique = True , verbose_name = ' Name ' ) ) ,
( ' description ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Description ' ) ) ,
( ' members ' , models . ManyToManyField ( related_name = ' organizations ' , to = settings . AUTH_USER_MODEL ) ) ,
( ' owner ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' owned_organizations ' , to = settings . AUTH_USER_MODEL ) ) ,
] ,
options = {
' verbose_name ' : ' Organization ' ,
' verbose_name_plural ' : ' Organizations ' ,
} ,
) ,
migrations . CreateModel (
name = ' Invite ' ,
fields = [
( ' id ' , models . BigAutoField ( primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' uuid ' , models . UUIDField ( default = uuid . uuid4 , editable = False , verbose_name = ' UUID ' ) ) ,
( ' created_at ' , models . DateTimeField ( auto_now_add = True , verbose_name = ' Created At ' ) ) ,
( ' updated_at ' , models . DateTimeField ( auto_now = True , verbose_name = ' Updated At ' ) ) ,
( ' expires_at ' , models . DateTimeField ( verbose_name = ' Expires At ' ) ) ,
( ' uses ' , models . IntegerField ( default = 0 , verbose_name = ' Uses ' ) ) ,
( ' max_uses ' , models . IntegerField ( default = 1 , verbose_name = ' Max Uses ' ) ) ,
( ' is_active ' , models . BooleanField ( default = True , verbose_name = ' Is Active ' ) ) ,
( ' created_by ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' created_invites ' , to = settings . AUTH_USER_MODEL ) ) ,
2026-02-27 12:53:19 +00:00
( ' organization ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' invites ' , to = ' accounts.organization ' ) ) ,
2026-02-26 01:32:04 +00:00
] ,
options = {
2026-02-27 12:53:19 +00:00
' verbose_name ' : ' Invite ' ,
' verbose_name_plural ' : ' Invites ' ,
2026-02-26 01:32:04 +00:00
} ,
) ,
migrations . CreateModel (
name = ' Role ' ,
fields = [
( ' id ' , models . BigAutoField ( primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' uuid ' , models . UUIDField ( default = uuid . uuid4 , editable = False , verbose_name = ' UUID ' ) ) ,
( ' created_at ' , models . DateTimeField ( auto_now_add = True , verbose_name = ' Created At ' ) ) ,
( ' updated_at ' , models . DateTimeField ( auto_now = True , verbose_name = ' Updated At ' ) ) ,
2026-03-08 12:56:23 +00:00
( ' name ' , models . CharField ( max_length = 100 , verbose_name = ' Name ' ) ) ,
2026-02-26 01:32:04 +00:00
( ' description ' , models . TextField ( blank = True , default = ' ' , verbose_name = ' Description ' ) ) ,
( ' members ' , models . ManyToManyField ( related_name = ' roles ' , to = settings . AUTH_USER_MODEL ) ) ,
( ' organization ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' roles ' , to = ' accounts.organization ' ) ) ,
] ,
options = {
' verbose_name ' : ' Role ' ,
' verbose_name_plural ' : ' Roles ' ,
2026-03-08 12:56:23 +00:00
' unique_together ' : { ( ' organization ' , ' name ' ) } ,
2026-02-26 01:32:04 +00:00
} ,
) ,
]