"""tables module gestion relations entreprises

Revision ID: af05f03b81be
Revises: b9aadc10227f
Create Date: 2022-03-01 17:12:32.927643

"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = "af05f03b81be"
down_revision = "b9aadc10227f"
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        "are_entreprises",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("siret", sa.Text(), nullable=True),
        sa.Column("nom", sa.Text(), nullable=True),
        sa.Column("adresse", sa.Text(), nullable=True),
        sa.Column("codepostal", sa.Text(), nullable=True),
        sa.Column("ville", sa.Text(), nullable=True),
        sa.Column("pays", sa.Text(), nullable=True),
        sa.Column("visible", sa.Boolean(), nullable=True),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_logs",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column(
            "date",
            sa.DateTime(timezone=True),
            server_default=sa.text("now()"),
            nullable=True,
        ),
        sa.Column("authenticated_user", sa.Text(), nullable=True),
        sa.Column("object", sa.Integer(), nullable=True),
        sa.Column("text", sa.Text(), nullable=True),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_preferences",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.Text(), nullable=True),
        sa.Column("value", sa.Text(), nullable=True),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_contacts",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("entreprise_id", sa.Integer(), nullable=True),
        sa.Column("nom", sa.Text(), nullable=True),
        sa.Column("prenom", sa.Text(), nullable=True),
        sa.Column("telephone", sa.Text(), nullable=True),
        sa.Column("mail", sa.Text(), nullable=True),
        sa.Column("poste", sa.Text(), nullable=True),
        sa.Column("service", sa.Text(), nullable=True),
        sa.ForeignKeyConstraint(
            ["entreprise_id"], ["are_entreprises.id"], ondelete="cascade"
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_etudiants",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("entreprise_id", sa.Integer(), nullable=True),
        sa.Column("etudid", sa.Integer(), nullable=True),
        sa.Column("type_offre", sa.Text(), nullable=True),
        sa.Column("date_debut", sa.Date(), nullable=True),
        sa.Column("date_fin", sa.Date(), nullable=True),
        sa.Column("formation_text", sa.Text(), nullable=True),
        sa.Column("formation_scodoc", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(
            ["entreprise_id"], ["are_entreprises.id"], ondelete="cascade"
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_offres",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("entreprise_id", sa.Integer(), nullable=True),
        sa.Column(
            "date_ajout",
            sa.DateTime(timezone=True),
            server_default=sa.text("now()"),
            nullable=True,
        ),
        sa.Column("intitule", sa.Text(), nullable=True),
        sa.Column("description", sa.Text(), nullable=True),
        sa.Column("type_offre", sa.Text(), nullable=True),
        sa.Column("missions", sa.Text(), nullable=True),
        sa.Column("duree", sa.Text(), nullable=True),
        sa.Column("expiration_date", sa.Date(), nullable=True),
        sa.Column("expired", sa.Boolean(), nullable=True),
        sa.ForeignKeyConstraint(
            ["entreprise_id"], ["are_entreprises.id"], ondelete="cascade"
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_envoi_offre",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("sender_id", sa.Integer(), nullable=True),
        sa.Column("receiver_id", sa.Integer(), nullable=True),
        sa.Column("offre_id", sa.Integer(), nullable=True),
        sa.Column(
            "date_envoi",
            sa.DateTime(timezone=True),
            server_default=sa.text("now()"),
            nullable=True,
        ),
        sa.ForeignKeyConstraint(["offre_id"], ["are_offres.id"], ondelete="cascade"),
        sa.ForeignKeyConstraint(["receiver_id"], ["user.id"], ondelete="cascade"),
        sa.ForeignKeyConstraint(["sender_id"], ["user.id"], ondelete="cascade"),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_envoi_offre_etudiant",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("sender_id", sa.Integer(), nullable=True),
        sa.Column("receiver_id", sa.Integer(), nullable=True),
        sa.Column("offre_id", sa.Integer(), nullable=True),
        sa.Column(
            "date_envoi",
            sa.DateTime(timezone=True),
            server_default=sa.text("now()"),
            nullable=True,
        ),
        sa.ForeignKeyConstraint(["offre_id"], ["are_offres.id"], ondelete="cascade"),
        sa.ForeignKeyConstraint(["receiver_id"], ["identite.id"], ondelete="cascade"),
        sa.ForeignKeyConstraint(["sender_id"], ["user.id"], ondelete="cascade"),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "are_offre_departement",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("offre_id", sa.Integer(), nullable=True),
        sa.Column("dept_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["dept_id"], ["departement.id"], ondelete="cascade"),
        sa.ForeignKeyConstraint(["offre_id"], ["are_offres.id"], ondelete="cascade"),
        sa.PrimaryKeyConstraint("id"),
    )
    op.drop_table("entreprise_contact")
    op.drop_table("entreprise_correspondant")
    op.drop_index("ix_entreprises_dept_id", table_name="entreprises")
    op.drop_table("entreprises")
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        "entreprises",
        sa.Column(
            "id",
            sa.INTEGER(),
            server_default=sa.text("nextval('entreprises_id_seq'::regclass)"),
            autoincrement=True,
            nullable=False,
        ),
        sa.Column("nom", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("adresse", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("ville", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("codepostal", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("pays", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("localisation", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("dept_id", sa.INTEGER(), autoincrement=False, nullable=True),
        sa.Column(
            "date_creation",
            postgresql.TIMESTAMP(timezone=True),
            server_default=sa.text("now()"),
            autoincrement=False,
            nullable=True,
        ),
        sa.Column("secteur", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("privee", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("plus10salaries", sa.BOOLEAN(), autoincrement=False, nullable=True),
        sa.Column("contact_origine", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("note", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("qualite_relation", sa.INTEGER(), autoincrement=False, nullable=True),
        sa.ForeignKeyConstraint(
            ["dept_id"], ["departement.id"], name="entreprises_dept_id_fkey"
        ),
        sa.PrimaryKeyConstraint("id", name="entreprises_pkey"),
        postgresql_ignore_search_path=False,
    )
    op.create_index("ix_entreprises_dept_id", "entreprises", ["dept_id"], unique=False)
    op.create_table(
        "entreprise_correspondant",
        sa.Column("id", sa.INTEGER(), autoincrement=True, nullable=False),
        sa.Column("entreprise_id", sa.INTEGER(), autoincrement=False, nullable=True),
        sa.Column("nom", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("prenom", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("civilite", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("fonction", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("phone1", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("phone2", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("mobile", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("mail1", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("mail2", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("fax", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("note", sa.TEXT(), autoincrement=False, nullable=True),
        sa.ForeignKeyConstraint(
            ["entreprise_id"],
            ["entreprises.id"],
            name="entreprise_correspondant_entreprise_id_fkey",
        ),
        sa.PrimaryKeyConstraint("id", name="entreprise_correspondant_pkey"),
    )
    op.create_table(
        "entreprise_contact",
        sa.Column("id", sa.INTEGER(), autoincrement=True, nullable=False),
        sa.Column("entreprise_id", sa.INTEGER(), autoincrement=False, nullable=True),
        sa.Column(
            "entreprise_corresp_id", sa.INTEGER(), autoincrement=False, nullable=True
        ),
        sa.Column("etudid", sa.INTEGER(), autoincrement=False, nullable=True),
        sa.Column("type_contact", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column(
            "date",
            postgresql.TIMESTAMP(timezone=True),
            autoincrement=False,
            nullable=True,
        ),
        sa.Column("enseignant", sa.TEXT(), autoincrement=False, nullable=True),
        sa.Column("description", sa.TEXT(), autoincrement=False, nullable=True),
        sa.ForeignKeyConstraint(
            ["entreprise_corresp_id"],
            ["entreprise_correspondant.id"],
            name="entreprise_contact_entreprise_corresp_id_fkey",
        ),
        sa.ForeignKeyConstraint(
            ["entreprise_id"],
            ["entreprises.id"],
            name="entreprise_contact_entreprise_id_fkey",
        ),
        sa.PrimaryKeyConstraint("id", name="entreprise_contact_pkey"),
    )
    op.drop_table("are_offre_departement")
    op.drop_table("are_envoi_offre_etudiant")
    op.drop_table("are_envoi_offre")
    op.drop_table("are_offres")
    op.drop_table("are_etudiants")
    op.drop_table("are_contacts")
    op.drop_table("are_preferences")
    op.drop_table("are_logs")
    op.drop_table("are_entreprises")
    # ### end Alembic commands ###
