feat: project consistency
This commit is contained in:
parent
7804816a1a
commit
cb70f17ad5
16 changed files with 572 additions and 219 deletions
97
alembic/versions/2026-04-06_initial_database_model.py
Normal file
97
alembic/versions/2026-04-06_initial_database_model.py
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
"""initial database model
|
||||
|
||||
Revision ID: 8fe51426321d
|
||||
Revises:
|
||||
Create Date: 2026-04-06 12:36:46.877760
|
||||
|
||||
"""
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = "8fe51426321d"
|
||||
down_revision: Union[str, Sequence[str], None] = None
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
"""Upgrade schema."""
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.create_table(
|
||||
"contact",
|
||||
sa.Column("id", sa.Integer(), nullable=False),
|
||||
sa.Column("email", sa.String(), nullable=True),
|
||||
sa.Column("first_name", sa.String(), nullable=True),
|
||||
sa.Column("last_name", sa.String(), nullable=True),
|
||||
sa.Column("phonenumber", sa.String(), nullable=True),
|
||||
sa.Column("vat_number", sa.String(), nullable=True),
|
||||
sa.Column("street_address", sa.String(), nullable=True),
|
||||
sa.Column("street_address_line_2", sa.String(), nullable=True),
|
||||
sa.Column("post_office_box_number", sa.String(), nullable=True),
|
||||
sa.Column("locality", sa.String(), nullable=True),
|
||||
sa.Column("country_code", sa.String(), nullable=True),
|
||||
sa.Column("address_region", sa.String(), nullable=True),
|
||||
sa.Column("postal_code", sa.String(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
)
|
||||
op.create_table(
|
||||
"user",
|
||||
sa.Column("id", sa.Integer(), nullable=False),
|
||||
sa.Column("email", sa.String(), nullable=True),
|
||||
sa.Column("first_name", sa.String(), nullable=True),
|
||||
sa.Column("last_name", sa.String(), nullable=True),
|
||||
sa.Column("oidc_id", sa.String(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
)
|
||||
op.create_index(op.f("ix_user_oidc_id"), "user", ["oidc_id"], unique=True)
|
||||
op.create_table(
|
||||
"organisation",
|
||||
sa.Column("id", sa.Integer(), nullable=False),
|
||||
sa.Column("name", sa.String(), nullable=True),
|
||||
sa.Column("status", sa.String(), nullable=True),
|
||||
sa.Column("intake_questionnaire", sa.JSON(), nullable=True),
|
||||
sa.Column("billing_contact_id", sa.Integer(), nullable=True),
|
||||
sa.Column("security_contact_id", sa.Integer(), nullable=True),
|
||||
sa.Column("owner_contact_id", sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(
|
||||
["billing_contact_id"],
|
||||
["contact.id"],
|
||||
),
|
||||
sa.ForeignKeyConstraint(
|
||||
["owner_contact_id"],
|
||||
["contact.id"],
|
||||
),
|
||||
sa.ForeignKeyConstraint(
|
||||
["security_contact_id"],
|
||||
["contact.id"],
|
||||
),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
)
|
||||
op.create_table(
|
||||
"orgusers",
|
||||
sa.Column("org_id", sa.Integer(), nullable=False),
|
||||
sa.Column("user_id", sa.Integer(), nullable=False),
|
||||
sa.Column(
|
||||
"is_admin", sa.Boolean(), server_default=sa.text("false"), nullable=False
|
||||
),
|
||||
sa.ForeignKeyConstraint(["org_id"], ["organisation.id"], ondelete="CASCADE"),
|
||||
sa.ForeignKeyConstraint(["user_id"], ["user.id"], ondelete="CASCADE"),
|
||||
sa.PrimaryKeyConstraint("org_id", "user_id"),
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
"""Downgrade schema."""
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table("orgusers")
|
||||
op.drop_table("organisation")
|
||||
op.drop_index(op.f("ix_user_oidc_id"), table_name="user")
|
||||
op.drop_table("user")
|
||||
op.drop_table("contact")
|
||||
# ### end Alembic commands ###
|
||||
Loading…
Add table
Add a link
Reference in a new issue