using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using TeleWave.Domain.Broadcast;

namespace TeleWave.Infrastructure.Persistence.Configurations;

public class BumperAssetConfiguration : IEntityTypeConfiguration<BumperAsset>
{
    public void Configure(EntityTypeBuilder<BumperAsset> builder)
    {
        builder.Property(x => x.Signature).IsRequired().HasMaxLength(128);
        builder.Property(x => x.RenderedLinesJson).HasColumnType("jsonb");

        // Кэш-ключ — сигнатура содержимого: одинаковая заставка на трёх каналах рендерится один раз.
        builder.HasIndex(x => x.Signature).IsUnique();
        builder.HasIndex(x => x.MediaAssetId);
    }
}
