From bee85bf92aab84087798ffa9f3f16336acef2fce Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Thu, 19 Mar 2026 18:56:34 +0100 Subject: Basic backoffice for alert management --- .../Data/Migrations/20260319113819_Initial.cs | 251 +++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 src/Enmarcha.Backend/Data/Migrations/20260319113819_Initial.cs (limited to 'src/Enmarcha.Backend/Data/Migrations/20260319113819_Initial.cs') diff --git a/src/Enmarcha.Backend/Data/Migrations/20260319113819_Initial.cs b/src/Enmarcha.Backend/Data/Migrations/20260319113819_Initial.cs new file mode 100644 index 0000000..2548aa9 --- /dev/null +++ b/src/Enmarcha.Backend/Data/Migrations/20260319113819_Initial.cs @@ -0,0 +1,251 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Data.Migrations +{ + /// + public partial class Initial : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterDatabase() + .Annotation("Npgsql:PostgresExtension:postgis", ",,"); + + migrationBuilder.CreateTable( + name: "roles", + columns: table => new + { + id = table.Column(type: "text", nullable: false), + name = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + normalizedName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + concurrencyStamp = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("pK_roles", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "service_alerts", + columns: table => new + { + id = table.Column(type: "text", nullable: false), + selectors = table.Column(type: "jsonb", nullable: false), + cause = table.Column(type: "integer", nullable: false), + effect = table.Column(type: "integer", nullable: false), + header = table.Column(type: "jsonb", nullable: false), + description = table.Column(type: "jsonb", nullable: false), + info_urls = table.Column(type: "jsonb", nullable: false), + inserted_date = table.Column(type: "timestamp with time zone", nullable: false), + publish_date = table.Column(type: "timestamp with time zone", nullable: false), + event_start_date = table.Column(type: "timestamp with time zone", nullable: false), + event_end_date = table.Column(type: "timestamp with time zone", nullable: false), + hidden_date = table.Column(type: "timestamp with time zone", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pK_service_alerts", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "users", + columns: table => new + { + id = table.Column(type: "text", nullable: false), + userName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + normalizedUserName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + email = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + normalizedEmail = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + emailConfirmed = table.Column(type: "boolean", nullable: false), + passwordHash = table.Column(type: "text", nullable: true), + securityStamp = table.Column(type: "text", nullable: true), + concurrencyStamp = table.Column(type: "text", nullable: true), + phoneNumber = table.Column(type: "text", nullable: true), + phoneNumberConfirmed = table.Column(type: "boolean", nullable: false), + twoFactorEnabled = table.Column(type: "boolean", nullable: false), + lockoutEnd = table.Column(type: "timestamp with time zone", nullable: true), + lockoutEnabled = table.Column(type: "boolean", nullable: false), + accessFailedCount = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pK_users", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "role_claims", + columns: table => new + { + id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + roleId = table.Column(type: "text", nullable: false), + claimType = table.Column(type: "text", nullable: true), + claimValue = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("pK_role_claims", x => x.id); + table.ForeignKey( + name: "fK_role_claims_roles_roleId", + column: x => x.roleId, + principalTable: "roles", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "user_claims", + columns: table => new + { + id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + userId = table.Column(type: "text", nullable: false), + claimType = table.Column(type: "text", nullable: true), + claimValue = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("pK_user_claims", x => x.id); + table.ForeignKey( + name: "fK_user_claims_users_userId", + column: x => x.userId, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "user_logins", + columns: table => new + { + loginProvider = table.Column(type: "text", nullable: false), + providerKey = table.Column(type: "text", nullable: false), + providerDisplayName = table.Column(type: "text", nullable: true), + userId = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pK_user_logins", x => new { x.loginProvider, x.providerKey }); + table.ForeignKey( + name: "fK_user_logins_users_userId", + column: x => x.userId, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "user_roles", + columns: table => new + { + userId = table.Column(type: "text", nullable: false), + roleId = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pK_user_roles", x => new { x.userId, x.roleId }); + table.ForeignKey( + name: "fK_user_roles_roles_roleId", + column: x => x.roleId, + principalTable: "roles", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "fK_user_roles_users_userId", + column: x => x.userId, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "user_tokens", + columns: table => new + { + userId = table.Column(type: "text", nullable: false), + loginProvider = table.Column(type: "text", nullable: false), + name = table.Column(type: "text", nullable: false), + value = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("pK_user_tokens", x => new { x.userId, x.loginProvider, x.name }); + table.ForeignKey( + name: "fK_user_tokens_users_userId", + column: x => x.userId, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "iX_role_claims_roleId", + table: "role_claims", + column: "roleId"); + + migrationBuilder.CreateIndex( + name: "RoleNameIndex", + table: "roles", + column: "normalizedName", + unique: true); + + migrationBuilder.CreateIndex( + name: "iX_user_claims_userId", + table: "user_claims", + column: "userId"); + + migrationBuilder.CreateIndex( + name: "iX_user_logins_userId", + table: "user_logins", + column: "userId"); + + migrationBuilder.CreateIndex( + name: "iX_user_roles_roleId", + table: "user_roles", + column: "roleId"); + + migrationBuilder.CreateIndex( + name: "EmailIndex", + table: "users", + column: "normalizedEmail"); + + migrationBuilder.CreateIndex( + name: "UserNameIndex", + table: "users", + column: "normalizedUserName", + unique: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "role_claims"); + + migrationBuilder.DropTable( + name: "service_alerts"); + + migrationBuilder.DropTable( + name: "user_claims"); + + migrationBuilder.DropTable( + name: "user_logins"); + + migrationBuilder.DropTable( + name: "user_roles"); + + migrationBuilder.DropTable( + name: "user_tokens"); + + migrationBuilder.DropTable( + name: "roles"); + + migrationBuilder.DropTable( + name: "users"); + } + } +} -- cgit v1.3