115 lines
5.9 KiB
C#
115 lines
5.9 KiB
C#
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using line_gestao_api.Data;
|
|
|
|
#nullable disable
|
|
|
|
namespace line_gestao_api.Migrations
|
|
{
|
|
[DbContext(typeof(AppDbContext))]
|
|
[Migration("20260303120000_AddSetoresAparelhosAndMobileLineCostCenter")]
|
|
public partial class AddSetoresAparelhosAndMobileLineCostCenter : Migration
|
|
{
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.Sql("""
|
|
CREATE TABLE IF NOT EXISTS "Setores" (
|
|
"Id" uuid NOT NULL,
|
|
"TenantId" uuid NOT NULL,
|
|
"Nome" character varying(160) NOT NULL,
|
|
"CreatedAt" timestamp with time zone NOT NULL,
|
|
"UpdatedAt" timestamp with time zone NOT NULL,
|
|
CONSTRAINT "PK_Setores" PRIMARY KEY ("Id")
|
|
);
|
|
""");
|
|
|
|
migrationBuilder.Sql("""
|
|
CREATE TABLE IF NOT EXISTS "Aparelhos" (
|
|
"Id" uuid NOT NULL,
|
|
"TenantId" uuid NOT NULL,
|
|
"Nome" character varying(160) NULL,
|
|
"Cor" character varying(80) NULL,
|
|
"Imei" character varying(80) NULL,
|
|
"NotaFiscalArquivoPath" character varying(500) NULL,
|
|
"ReciboArquivoPath" character varying(500) NULL,
|
|
"CreatedAt" timestamp with time zone NOT NULL,
|
|
"UpdatedAt" timestamp with time zone NOT NULL,
|
|
CONSTRAINT "PK_Aparelhos" PRIMARY KEY ("Id")
|
|
);
|
|
""");
|
|
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" ADD COLUMN IF NOT EXISTS "CentroDeCustos" character varying(180) NULL;""");
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" ADD COLUMN IF NOT EXISTS "SetorId" uuid NULL;""");
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" ADD COLUMN IF NOT EXISTS "AparelhoId" uuid NULL;""");
|
|
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_Setores_TenantId" ON "Setores" ("TenantId");""");
|
|
migrationBuilder.Sql("""CREATE UNIQUE INDEX IF NOT EXISTS "IX_Setores_TenantId_Nome" ON "Setores" ("TenantId", "Nome");""");
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_Aparelhos_TenantId" ON "Aparelhos" ("TenantId");""");
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_Aparelhos_Imei" ON "Aparelhos" ("Imei");""");
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_Aparelhos_TenantId_Nome_Cor" ON "Aparelhos" ("TenantId", "Nome", "Cor");""");
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_MobileLines_CentroDeCustos" ON "MobileLines" ("CentroDeCustos");""");
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_MobileLines_SetorId" ON "MobileLines" ("SetorId");""");
|
|
migrationBuilder.Sql("""CREATE INDEX IF NOT EXISTS "IX_MobileLines_AparelhoId" ON "MobileLines" ("AparelhoId");""");
|
|
|
|
migrationBuilder.Sql("""
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.table_constraints
|
|
WHERE constraint_name = 'FK_MobileLines_Setores_SetorId'
|
|
AND table_name = 'MobileLines'
|
|
) THEN
|
|
ALTER TABLE "MobileLines"
|
|
ADD CONSTRAINT "FK_MobileLines_Setores_SetorId"
|
|
FOREIGN KEY ("SetorId") REFERENCES "Setores" ("Id")
|
|
ON DELETE SET NULL;
|
|
END IF;
|
|
END
|
|
$$;
|
|
""");
|
|
|
|
migrationBuilder.Sql("""
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.table_constraints
|
|
WHERE constraint_name = 'FK_MobileLines_Aparelhos_AparelhoId'
|
|
AND table_name = 'MobileLines'
|
|
) THEN
|
|
ALTER TABLE "MobileLines"
|
|
ADD CONSTRAINT "FK_MobileLines_Aparelhos_AparelhoId"
|
|
FOREIGN KEY ("AparelhoId") REFERENCES "Aparelhos" ("Id")
|
|
ON DELETE SET NULL;
|
|
END IF;
|
|
END
|
|
$$;
|
|
""");
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" DROP CONSTRAINT IF EXISTS "FK_MobileLines_Setores_SetorId";""");
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" DROP CONSTRAINT IF EXISTS "FK_MobileLines_Aparelhos_AparelhoId";""");
|
|
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_MobileLines_AparelhoId";""");
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_MobileLines_SetorId";""");
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_MobileLines_CentroDeCustos";""");
|
|
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" DROP COLUMN IF EXISTS "AparelhoId";""");
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" DROP COLUMN IF EXISTS "SetorId";""");
|
|
migrationBuilder.Sql("""ALTER TABLE "MobileLines" DROP COLUMN IF EXISTS "CentroDeCustos";""");
|
|
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_Aparelhos_TenantId_Nome_Cor";""");
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_Aparelhos_Imei";""");
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_Aparelhos_TenantId";""");
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_Setores_TenantId_Nome";""");
|
|
migrationBuilder.Sql("""DROP INDEX IF EXISTS "IX_Setores_TenantId";""");
|
|
|
|
migrationBuilder.Sql("""DROP TABLE IF EXISTS "Aparelhos";""");
|
|
migrationBuilder.Sql("""DROP TABLE IF EXISTS "Setores";""");
|
|
}
|
|
}
|
|
}
|