#nullable disable using Microsoft.EntityFrameworkCore.Migrations; namespace Quality.Storage.Api.Migrations { /// public partial class InitialYay : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "folders", columns: table => new { id = table.Column(type: "uuid", nullable: false), name = table.Column(type: "text", nullable: false), isencrypted = table.Column(name: "is_encrypted", type: "boolean", nullable: false), isbinned = table.Column(name: "is_binned", type: "boolean", nullable: false), createdat = table.Column(name: "created_at", type: "timestamp with time zone", nullable: false), lastmodifiedat = table.Column(name: "last_modified_at", type: "timestamp with time zone", nullable: true), lastdeletedat = table.Column(name: "last_deleted_at", type: "timestamp with time zone", nullable: true), owninguserid = table.Column(name: "owning_user_id", type: "uuid", nullable: true), lastmodifiedby = table.Column(name: "last_modified_by", type: "uuid", nullable: true), lastdeletedby = table.Column(name: "last_deleted_by", type: "uuid", nullable: true), createdby = table.Column(name: "created_by", type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("pk_folders", x => x.id); }); migrationBuilder.CreateTable( name: "permission_groups", columns: table => new { id = table.Column(type: "uuid", nullable: false), name = table.Column(type: "text", nullable: false), description = table.Column(type: "text", nullable: false), createdat = table.Column(name: "created_at", type: "timestamp with time zone", nullable: false), lastmodifiedat = table.Column(name: "last_modified_at", type: "timestamp with time zone", nullable: true), lastdeletedat = table.Column(name: "last_deleted_at", type: "timestamp with time zone", nullable: true), owninguserid = table.Column(name: "owning_user_id", type: "uuid", nullable: true), lastmodifiedby = table.Column(name: "last_modified_by", type: "uuid", nullable: true), lastdeletedby = table.Column(name: "last_deleted_by", type: "uuid", nullable: true), createdby = table.Column(name: "created_by", type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("pk_permission_groups", x => x.id); }); migrationBuilder.CreateTable( name: "files", columns: table => new { id = table.Column(type: "uuid", nullable: false), name = table.Column(type: "text", nullable: false), mimetype = table.Column(name: "mime_type", type: "text", nullable: false), sizeinbytes = table.Column(name: "size_in_bytes", type: "bigint", nullable: false), folderid = table.Column(name: "folder_id", type: "uuid", nullable: false), isencrypted = table.Column(name: "is_encrypted", type: "boolean", nullable: false), isbinned = table.Column(name: "is_binned", type: "boolean", nullable: false), createdat = table.Column(name: "created_at", type: "timestamp with time zone", nullable: false), lastmodifiedat = table.Column(name: "last_modified_at", type: "timestamp with time zone", nullable: true), lastdeletedat = table.Column(name: "last_deleted_at", type: "timestamp with time zone", nullable: true), owninguserid = table.Column(name: "owning_user_id", type: "uuid", nullable: true), lastmodifiedby = table.Column(name: "last_modified_by", type: "uuid", nullable: true), lastdeletedby = table.Column(name: "last_deleted_by", type: "uuid", nullable: true), createdby = table.Column(name: "created_by", type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("pk_files", x => x.id); table.ForeignKey( name: "fk_files_folders_folder_id", column: x => x.folderid, principalTable: "folders", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "users", columns: table => new { id = table.Column(type: "uuid", nullable: false), username = table.Column(type: "text", nullable: false), password = table.Column(type: "text", nullable: false), role = table.Column(type: "integer", nullable: false), firstname = table.Column(name: "first_name", type: "text", nullable: false), lastname = table.Column(name: "last_name", type: "text", nullable: false), lastloggedon = table.Column(name: "last_logged_on", type: "timestamp with time zone", nullable: true), permissiongroupid = table.Column(name: "permission_group_id", type: "uuid", nullable: true), createdat = table.Column(name: "created_at", type: "timestamp with time zone", nullable: false), lastmodifiedat = table.Column(name: "last_modified_at", type: "timestamp with time zone", nullable: true), lastdeletedat = table.Column(name: "last_deleted_at", type: "timestamp with time zone", nullable: true), owninguserid = table.Column(name: "owning_user_id", type: "uuid", nullable: true), lastmodifiedby = table.Column(name: "last_modified_by", type: "uuid", nullable: true), lastdeletedby = table.Column(name: "last_deleted_by", type: "uuid", nullable: true), createdby = table.Column(name: "created_by", type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("pk_users", x => x.id); table.ForeignKey( name: "fk_users_permission_groups_permission_group_id", column: x => x.permissiongroupid, principalTable: "permission_groups", principalColumn: "id"); }); migrationBuilder.CreateTable( name: "permissions", columns: table => new { id = table.Column(type: "uuid", nullable: false), contentid = table.Column(name: "content_id", type: "uuid", nullable: false), isfile = table.Column(name: "is_file", type: "boolean", nullable: false), canread = table.Column(name: "can_read", type: "boolean", nullable: false), canwrite = table.Column(name: "can_write", type: "boolean", nullable: false), groupid = table.Column(name: "group_id", type: "uuid", nullable: false), fileid = table.Column(name: "file_id", type: "uuid", nullable: true), folderid = table.Column(name: "folder_id", type: "uuid", nullable: true), createdat = table.Column(name: "created_at", type: "timestamp with time zone", nullable: false), lastmodifiedat = table.Column(name: "last_modified_at", type: "timestamp with time zone", nullable: true), lastdeletedat = table.Column(name: "last_deleted_at", type: "timestamp with time zone", nullable: true), owninguserid = table.Column(name: "owning_user_id", type: "uuid", nullable: true), lastmodifiedby = table.Column(name: "last_modified_by", type: "uuid", nullable: true), lastdeletedby = table.Column(name: "last_deleted_by", type: "uuid", nullable: true), createdby = table.Column(name: "created_by", type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("pk_permissions", x => x.id); table.ForeignKey( name: "fk_permissions_files_file_id", column: x => x.fileid, principalTable: "files", principalColumn: "id"); table.ForeignKey( name: "fk_permissions_folders_folder_id", column: x => x.folderid, principalTable: "folders", principalColumn: "id"); table.ForeignKey( name: "fk_permissions_permission_groups_group_id", column: x => x.groupid, principalTable: "permission_groups", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "ix_files_folder_id", table: "files", column: "folder_id"); migrationBuilder.CreateIndex( name: "ix_permissions_file_id", table: "permissions", column: "file_id"); migrationBuilder.CreateIndex( name: "ix_permissions_folder_id", table: "permissions", column: "folder_id"); migrationBuilder.CreateIndex( name: "ix_permissions_group_id", table: "permissions", column: "group_id"); migrationBuilder.CreateIndex( name: "ix_users_permission_group_id", table: "users", column: "permission_group_id"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "permissions"); migrationBuilder.DropTable( name: "users"); migrationBuilder.DropTable( name: "files"); migrationBuilder.DropTable( name: "permission_groups"); migrationBuilder.DropTable( name: "folders"); } } }