From d8da21ddec54e0c01508429b0359f5b8830bfc4e Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sat, 24 Jul 2021 01:02:39 +0200 Subject: [PATCH] Fixing migrations --- Kyoo.Common/Models/Resources/Show.cs | 2 +- ....cs => 20210723224326_Initial.Designer.cs} | 56 +++++++++++++++++-- ...3_Initial.cs => 20210723224326_Initial.cs} | 4 +- ...cs => 20210723224335_Triggers.Designer.cs} | 56 +++++++++++++++++-- ...Triggers.cs => 20210723224335_Triggers.cs} | 0 .../PostgresContextModelSnapshot.cs | 54 ++++++++++++++++-- ....cs => 20210723224542_Initial.Designer.cs} | 44 +++++++++++++-- ...7_Initial.cs => 20210723224542_Initial.cs} | 2 +- ...cs => 20210723224550_Triggers.Designer.cs} | 44 +++++++++++++-- ...Triggers.cs => 20210723224550_Triggers.cs} | 0 .../Migrations/SqLiteContextModelSnapshot.cs | 42 +++++++++++++- 11 files changed, 275 insertions(+), 29 deletions(-) rename Kyoo.Postgresql/Migrations/{20210627141933_Initial.Designer.cs => 20210723224326_Initial.Designer.cs} (95%) rename Kyoo.Postgresql/Migrations/{20210627141933_Initial.cs => 20210723224326_Initial.cs} (99%) rename Kyoo.Postgresql/Migrations/{20210627141941_Triggers.Designer.cs => 20210723224335_Triggers.Designer.cs} (95%) rename Kyoo.Postgresql/Migrations/{20210627141941_Triggers.cs => 20210723224335_Triggers.cs} (100%) rename Kyoo.SqLite/Migrations/{20210626141337_Initial.Designer.cs => 20210723224542_Initial.Designer.cs} (96%) rename Kyoo.SqLite/Migrations/{20210626141337_Initial.cs => 20210723224542_Initial.cs} (99%) rename Kyoo.SqLite/Migrations/{20210626141347_Triggers.Designer.cs => 20210723224550_Triggers.Designer.cs} (96%) rename Kyoo.SqLite/Migrations/{20210626141347_Triggers.cs => 20210723224550_Triggers.cs} (100%) diff --git a/Kyoo.Common/Models/Resources/Show.cs b/Kyoo.Common/Models/Resources/Show.cs index bddc6920..57c9fcef 100644 --- a/Kyoo.Common/Models/Resources/Show.cs +++ b/Kyoo.Common/Models/Resources/Show.cs @@ -185,5 +185,5 @@ namespace Kyoo.Models /// /// The enum containing show's status. /// - public enum Status { Finished, Airing, Planned, Unknown } + public enum Status { Unknown, Finished, Airing, Planned } } diff --git a/Kyoo.Postgresql/Migrations/20210627141933_Initial.Designer.cs b/Kyoo.Postgresql/Migrations/20210723224326_Initial.Designer.cs similarity index 95% rename from Kyoo.Postgresql/Migrations/20210627141933_Initial.Designer.cs rename to Kyoo.Postgresql/Migrations/20210723224326_Initial.Designer.cs index f1733a77..3016a040 100644 --- a/Kyoo.Postgresql/Migrations/20210627141933_Initial.Designer.cs +++ b/Kyoo.Postgresql/Migrations/20210723224326_Initial.Designer.cs @@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Kyoo.Postgresql.Migrations { [DbContext(typeof(PostgresContext))] - [Migration("20210627141933_Initial")] + [Migration("20210723224326_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -20,10 +20,10 @@ namespace Kyoo.Postgresql.Migrations #pragma warning disable 612, 618 modelBuilder .HasPostgresEnum(null, "item_type", new[] { "show", "movie", "collection" }) - .HasPostgresEnum(null, "status", new[] { "finished", "airing", "planned", "unknown" }) + .HasPostgresEnum(null, "status", new[] { "unknown", "finished", "airing", "planned" }) .HasPostgresEnum(null, "stream_type", new[] { "unknown", "video", "audio", "subtitle", "attachment" }) .HasAnnotation("Relational:MaxIdentifierLength", 63) - .HasAnnotation("ProductVersion", "5.0.7") + .HasAnnotation("ProductVersion", "5.0.8") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); modelBuilder.Entity("Kyoo.Models.Collection", b => @@ -189,6 +189,51 @@ namespace Kyoo.Postgresql.Migrations b.ToTable("libraries"); }); + modelBuilder.Entity("Kyoo.Models.LibraryItem", b => + { + b.Property("ID") + .HasColumnType("integer") + .HasColumnName("id") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EndAir") + .HasColumnType("timestamp without time zone") + .HasColumnName("end_air"); + + b.Property("Overview") + .HasColumnType("text") + .HasColumnName("overview"); + + b.Property("Poster") + .HasColumnType("text") + .HasColumnName("poster"); + + b.Property("Slug") + .HasColumnType("text") + .HasColumnName("slug"); + + b.Property("StartAir") + .HasColumnType("timestamp without time zone") + .HasColumnName("start_air"); + + b.Property("Status") + .HasColumnType("status") + .HasColumnName("status"); + + b.Property("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.Property("Type") + .HasColumnType("item_type") + .HasColumnName("type"); + + b.HasKey("ID") + .HasName("pk_library_items"); + + b.ToView("library_items"); + }); + modelBuilder.Entity("Kyoo.Models.Link", b => { b.Property("FirstID") @@ -621,7 +666,7 @@ namespace Kyoo.Postgresql.Migrations .HasColumnType("timestamp without time zone") .HasColumnName("start_air"); - b.Property("Status") + b.Property("Status") .HasColumnType("status") .HasColumnName("status"); @@ -1078,7 +1123,8 @@ namespace Kyoo.Postgresql.Migrations b.HasOne("Kyoo.Models.Studio", "Studio") .WithMany("Shows") .HasForeignKey("StudioID") - .HasConstraintName("fk_shows_studios_studio_id"); + .HasConstraintName("fk_shows_studios_studio_id") + .OnDelete(DeleteBehavior.SetNull); b.Navigation("Studio"); }); diff --git a/Kyoo.Postgresql/Migrations/20210627141933_Initial.cs b/Kyoo.Postgresql/Migrations/20210723224326_Initial.cs similarity index 99% rename from Kyoo.Postgresql/Migrations/20210627141933_Initial.cs rename to Kyoo.Postgresql/Migrations/20210723224326_Initial.cs index 29b51490..2ba22c6a 100644 --- a/Kyoo.Postgresql/Migrations/20210627141933_Initial.cs +++ b/Kyoo.Postgresql/Migrations/20210723224326_Initial.cs @@ -12,7 +12,7 @@ namespace Kyoo.Postgresql.Migrations { migrationBuilder.AlterDatabase() .Annotation("Npgsql:Enum:item_type", "show,movie,collection") - .Annotation("Npgsql:Enum:status", "finished,airing,planned,unknown") + .Annotation("Npgsql:Enum:status", "unknown,finished,airing,planned") .Annotation("Npgsql:Enum:stream_type", "unknown,video,audio,subtitle,attachment"); migrationBuilder.CreateTable( @@ -208,7 +208,7 @@ namespace Kyoo.Postgresql.Migrations aliases = table.Column(type: "text[]", nullable: true), path = table.Column(type: "text", nullable: true), overview = table.Column(type: "text", nullable: true), - status = table.Column(type: "status", nullable: true), + status = table.Column(type: "status", nullable: false), trailer_url = table.Column(type: "text", nullable: true), start_air = table.Column(type: "timestamp without time zone", nullable: true), end_air = table.Column(type: "timestamp without time zone", nullable: true), diff --git a/Kyoo.Postgresql/Migrations/20210627141941_Triggers.Designer.cs b/Kyoo.Postgresql/Migrations/20210723224335_Triggers.Designer.cs similarity index 95% rename from Kyoo.Postgresql/Migrations/20210627141941_Triggers.Designer.cs rename to Kyoo.Postgresql/Migrations/20210723224335_Triggers.Designer.cs index fc019baf..d377a09f 100644 --- a/Kyoo.Postgresql/Migrations/20210627141941_Triggers.Designer.cs +++ b/Kyoo.Postgresql/Migrations/20210723224335_Triggers.Designer.cs @@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Kyoo.Postgresql.Migrations { [DbContext(typeof(PostgresContext))] - [Migration("20210627141941_Triggers")] + [Migration("20210723224335_Triggers")] partial class Triggers { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -20,10 +20,10 @@ namespace Kyoo.Postgresql.Migrations #pragma warning disable 612, 618 modelBuilder .HasPostgresEnum(null, "item_type", new[] { "show", "movie", "collection" }) - .HasPostgresEnum(null, "status", new[] { "finished", "airing", "planned", "unknown" }) + .HasPostgresEnum(null, "status", new[] { "unknown", "finished", "airing", "planned" }) .HasPostgresEnum(null, "stream_type", new[] { "unknown", "video", "audio", "subtitle", "attachment" }) .HasAnnotation("Relational:MaxIdentifierLength", 63) - .HasAnnotation("ProductVersion", "5.0.7") + .HasAnnotation("ProductVersion", "5.0.8") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); modelBuilder.Entity("Kyoo.Models.Collection", b => @@ -189,6 +189,51 @@ namespace Kyoo.Postgresql.Migrations b.ToTable("libraries"); }); + modelBuilder.Entity("Kyoo.Models.LibraryItem", b => + { + b.Property("ID") + .HasColumnType("integer") + .HasColumnName("id") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EndAir") + .HasColumnType("timestamp without time zone") + .HasColumnName("end_air"); + + b.Property("Overview") + .HasColumnType("text") + .HasColumnName("overview"); + + b.Property("Poster") + .HasColumnType("text") + .HasColumnName("poster"); + + b.Property("Slug") + .HasColumnType("text") + .HasColumnName("slug"); + + b.Property("StartAir") + .HasColumnType("timestamp without time zone") + .HasColumnName("start_air"); + + b.Property("Status") + .HasColumnType("status") + .HasColumnName("status"); + + b.Property("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.Property("Type") + .HasColumnType("item_type") + .HasColumnName("type"); + + b.HasKey("ID") + .HasName("pk_library_items"); + + b.ToView("library_items"); + }); + modelBuilder.Entity("Kyoo.Models.Link", b => { b.Property("FirstID") @@ -621,7 +666,7 @@ namespace Kyoo.Postgresql.Migrations .HasColumnType("timestamp without time zone") .HasColumnName("start_air"); - b.Property("Status") + b.Property("Status") .HasColumnType("status") .HasColumnName("status"); @@ -1078,7 +1123,8 @@ namespace Kyoo.Postgresql.Migrations b.HasOne("Kyoo.Models.Studio", "Studio") .WithMany("Shows") .HasForeignKey("StudioID") - .HasConstraintName("fk_shows_studios_studio_id"); + .HasConstraintName("fk_shows_studios_studio_id") + .OnDelete(DeleteBehavior.SetNull); b.Navigation("Studio"); }); diff --git a/Kyoo.Postgresql/Migrations/20210627141941_Triggers.cs b/Kyoo.Postgresql/Migrations/20210723224335_Triggers.cs similarity index 100% rename from Kyoo.Postgresql/Migrations/20210627141941_Triggers.cs rename to Kyoo.Postgresql/Migrations/20210723224335_Triggers.cs diff --git a/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs b/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs index e5044c60..f2d55f24 100644 --- a/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs +++ b/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs @@ -18,10 +18,10 @@ namespace Kyoo.Postgresql.Migrations #pragma warning disable 612, 618 modelBuilder .HasPostgresEnum(null, "item_type", new[] { "show", "movie", "collection" }) - .HasPostgresEnum(null, "status", new[] { "finished", "airing", "planned", "unknown" }) + .HasPostgresEnum(null, "status", new[] { "unknown", "finished", "airing", "planned" }) .HasPostgresEnum(null, "stream_type", new[] { "unknown", "video", "audio", "subtitle", "attachment" }) .HasAnnotation("Relational:MaxIdentifierLength", 63) - .HasAnnotation("ProductVersion", "5.0.7") + .HasAnnotation("ProductVersion", "5.0.8") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); modelBuilder.Entity("Kyoo.Models.Collection", b => @@ -187,6 +187,51 @@ namespace Kyoo.Postgresql.Migrations b.ToTable("libraries"); }); + modelBuilder.Entity("Kyoo.Models.LibraryItem", b => + { + b.Property("ID") + .HasColumnType("integer") + .HasColumnName("id") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EndAir") + .HasColumnType("timestamp without time zone") + .HasColumnName("end_air"); + + b.Property("Overview") + .HasColumnType("text") + .HasColumnName("overview"); + + b.Property("Poster") + .HasColumnType("text") + .HasColumnName("poster"); + + b.Property("Slug") + .HasColumnType("text") + .HasColumnName("slug"); + + b.Property("StartAir") + .HasColumnType("timestamp without time zone") + .HasColumnName("start_air"); + + b.Property("Status") + .HasColumnType("status") + .HasColumnName("status"); + + b.Property("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.Property("Type") + .HasColumnType("item_type") + .HasColumnName("type"); + + b.HasKey("ID") + .HasName("pk_library_items"); + + b.ToView("library_items"); + }); + modelBuilder.Entity("Kyoo.Models.Link", b => { b.Property("FirstID") @@ -619,7 +664,7 @@ namespace Kyoo.Postgresql.Migrations .HasColumnType("timestamp without time zone") .HasColumnName("start_air"); - b.Property("Status") + b.Property("Status") .HasColumnType("status") .HasColumnName("status"); @@ -1076,7 +1121,8 @@ namespace Kyoo.Postgresql.Migrations b.HasOne("Kyoo.Models.Studio", "Studio") .WithMany("Shows") .HasForeignKey("StudioID") - .HasConstraintName("fk_shows_studios_studio_id"); + .HasConstraintName("fk_shows_studios_studio_id") + .OnDelete(DeleteBehavior.SetNull); b.Navigation("Studio"); }); diff --git a/Kyoo.SqLite/Migrations/20210626141337_Initial.Designer.cs b/Kyoo.SqLite/Migrations/20210723224542_Initial.Designer.cs similarity index 96% rename from Kyoo.SqLite/Migrations/20210626141337_Initial.Designer.cs rename to Kyoo.SqLite/Migrations/20210723224542_Initial.Designer.cs index 1337ce6b..eca501eb 100644 --- a/Kyoo.SqLite/Migrations/20210626141337_Initial.Designer.cs +++ b/Kyoo.SqLite/Migrations/20210723224542_Initial.Designer.cs @@ -9,14 +9,14 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Kyoo.SqLite.Migrations { [DbContext(typeof(SqLiteContext))] - [Migration("20210626141337_Initial")] + [Migration("20210723224542_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "5.0.7"); + .HasAnnotation("ProductVersion", "5.0.8"); modelBuilder.Entity("Kyoo.Models.Collection", b => { @@ -143,6 +143,41 @@ namespace Kyoo.SqLite.Migrations b.ToTable("Libraries"); }); + modelBuilder.Entity("Kyoo.Models.LibraryItem", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("EndAir") + .HasColumnType("TEXT"); + + b.Property("Overview") + .HasColumnType("TEXT"); + + b.Property("Poster") + .HasColumnType("TEXT"); + + b.Property("Slug") + .HasColumnType("TEXT"); + + b.Property("StartAir") + .HasColumnType("TEXT"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("ID"); + + b.ToView("LibraryItems"); + }); + modelBuilder.Entity("Kyoo.Models.Link", b => { b.Property("FirstID") @@ -477,7 +512,7 @@ namespace Kyoo.SqLite.Migrations b.Property("StartAir") .HasColumnType("TEXT"); - b.Property("Status") + b.Property("Status") .HasColumnType("INTEGER"); b.Property("StudioID") @@ -864,7 +899,8 @@ namespace Kyoo.SqLite.Migrations { b.HasOne("Kyoo.Models.Studio", "Studio") .WithMany("Shows") - .HasForeignKey("StudioID"); + .HasForeignKey("StudioID") + .OnDelete(DeleteBehavior.SetNull); b.Navigation("Studio"); }); diff --git a/Kyoo.SqLite/Migrations/20210626141337_Initial.cs b/Kyoo.SqLite/Migrations/20210723224542_Initial.cs similarity index 99% rename from Kyoo.SqLite/Migrations/20210626141337_Initial.cs rename to Kyoo.SqLite/Migrations/20210723224542_Initial.cs index 88823571..1fa93860 100644 --- a/Kyoo.SqLite/Migrations/20210626141337_Initial.cs +++ b/Kyoo.SqLite/Migrations/20210723224542_Initial.cs @@ -200,7 +200,7 @@ namespace Kyoo.SqLite.Migrations Aliases = table.Column(type: "TEXT", nullable: true), Path = table.Column(type: "TEXT", nullable: true), Overview = table.Column(type: "TEXT", nullable: true), - Status = table.Column(type: "INTEGER", nullable: true), + Status = table.Column(type: "INTEGER", nullable: false), TrailerUrl = table.Column(type: "TEXT", nullable: true), StartAir = table.Column(type: "TEXT", nullable: true), EndAir = table.Column(type: "TEXT", nullable: true), diff --git a/Kyoo.SqLite/Migrations/20210626141347_Triggers.Designer.cs b/Kyoo.SqLite/Migrations/20210723224550_Triggers.Designer.cs similarity index 96% rename from Kyoo.SqLite/Migrations/20210626141347_Triggers.Designer.cs rename to Kyoo.SqLite/Migrations/20210723224550_Triggers.Designer.cs index 02045e3f..059a3aa4 100644 --- a/Kyoo.SqLite/Migrations/20210626141347_Triggers.Designer.cs +++ b/Kyoo.SqLite/Migrations/20210723224550_Triggers.Designer.cs @@ -9,14 +9,14 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Kyoo.SqLite.Migrations { [DbContext(typeof(SqLiteContext))] - [Migration("20210626141347_Triggers")] + [Migration("20210723224550_Triggers")] partial class Triggers { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "5.0.7"); + .HasAnnotation("ProductVersion", "5.0.8"); modelBuilder.Entity("Kyoo.Models.Collection", b => { @@ -143,6 +143,41 @@ namespace Kyoo.SqLite.Migrations b.ToTable("Libraries"); }); + modelBuilder.Entity("Kyoo.Models.LibraryItem", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("EndAir") + .HasColumnType("TEXT"); + + b.Property("Overview") + .HasColumnType("TEXT"); + + b.Property("Poster") + .HasColumnType("TEXT"); + + b.Property("Slug") + .HasColumnType("TEXT"); + + b.Property("StartAir") + .HasColumnType("TEXT"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("ID"); + + b.ToView("LibraryItems"); + }); + modelBuilder.Entity("Kyoo.Models.Link", b => { b.Property("FirstID") @@ -477,7 +512,7 @@ namespace Kyoo.SqLite.Migrations b.Property("StartAir") .HasColumnType("TEXT"); - b.Property("Status") + b.Property("Status") .HasColumnType("INTEGER"); b.Property("StudioID") @@ -864,7 +899,8 @@ namespace Kyoo.SqLite.Migrations { b.HasOne("Kyoo.Models.Studio", "Studio") .WithMany("Shows") - .HasForeignKey("StudioID"); + .HasForeignKey("StudioID") + .OnDelete(DeleteBehavior.SetNull); b.Navigation("Studio"); }); diff --git a/Kyoo.SqLite/Migrations/20210626141347_Triggers.cs b/Kyoo.SqLite/Migrations/20210723224550_Triggers.cs similarity index 100% rename from Kyoo.SqLite/Migrations/20210626141347_Triggers.cs rename to Kyoo.SqLite/Migrations/20210723224550_Triggers.cs diff --git a/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs b/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs index 58ded130..12f5d94b 100644 --- a/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs +++ b/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs @@ -14,7 +14,7 @@ namespace Kyoo.SqLite.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "5.0.7"); + .HasAnnotation("ProductVersion", "5.0.8"); modelBuilder.Entity("Kyoo.Models.Collection", b => { @@ -141,6 +141,41 @@ namespace Kyoo.SqLite.Migrations b.ToTable("Libraries"); }); + modelBuilder.Entity("Kyoo.Models.LibraryItem", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("EndAir") + .HasColumnType("TEXT"); + + b.Property("Overview") + .HasColumnType("TEXT"); + + b.Property("Poster") + .HasColumnType("TEXT"); + + b.Property("Slug") + .HasColumnType("TEXT"); + + b.Property("StartAir") + .HasColumnType("TEXT"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("ID"); + + b.ToView("LibraryItems"); + }); + modelBuilder.Entity("Kyoo.Models.Link", b => { b.Property("FirstID") @@ -475,7 +510,7 @@ namespace Kyoo.SqLite.Migrations b.Property("StartAir") .HasColumnType("TEXT"); - b.Property("Status") + b.Property("Status") .HasColumnType("INTEGER"); b.Property("StudioID") @@ -862,7 +897,8 @@ namespace Kyoo.SqLite.Migrations { b.HasOne("Kyoo.Models.Studio", "Studio") .WithMany("Shows") - .HasForeignKey("StudioID"); + .HasForeignKey("StudioID") + .OnDelete(DeleteBehavior.SetNull); b.Navigation("Studio"); });