//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using WorkClub.Infrastructure.Data;
#nullable disable
namespace WorkClub.Infrastructure.Migrations
{
[DbContext(typeof(AppDbContext))]
partial class AppDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "10.0.3")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("WorkClub.Domain.Entities.Club", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property("Description")
.HasMaxLength(2000)
.HasColumnType("character varying(2000)");
b.Property("Name")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("SportType")
.HasColumnType("integer");
b.Property("TenantId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_clubs_tenant_id");
b.ToTable("clubs", (string)null);
});
modelBuilder.Entity("WorkClub.Domain.Entities.Member", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("ClubId")
.HasColumnType("uuid");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property("DisplayName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("Email")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("ExternalUserId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("Role")
.HasColumnType("integer");
b.Property("TenantId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("ClubId")
.HasDatabaseName("ix_members_club_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_members_tenant_id");
b.HasIndex("TenantId", "ExternalUserId")
.HasDatabaseName("ix_members_tenant_external_user");
b.ToTable("members", (string)null);
});
modelBuilder.Entity("WorkClub.Domain.Entities.Shift", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("Capacity")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(1);
b.Property("ClubId")
.HasColumnType("uuid");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property("CreatedById")
.HasColumnType("uuid");
b.Property("Description")
.HasMaxLength(2000)
.HasColumnType("character varying(2000)");
b.Property("EndTime")
.HasColumnType("timestamp with time zone");
b.Property("Location")
.HasMaxLength(500)
.HasColumnType("character varying(500)");
b.Property("RowVersion")
.IsConcurrencyToken()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("xid")
.HasColumnName("xmin");
b.Property("StartTime")
.HasColumnType("timestamp with time zone");
b.Property("TenantId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("Title")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("ClubId")
.HasDatabaseName("ix_shifts_club_id");
b.HasIndex("StartTime")
.HasDatabaseName("ix_shifts_start_time");
b.HasIndex("TenantId")
.HasDatabaseName("ix_shifts_tenant_id");
b.ToTable("shifts", (string)null);
});
modelBuilder.Entity("WorkClub.Domain.Entities.ShiftSignup", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("MemberId")
.HasColumnType("uuid");
b.Property("ShiftId")
.HasColumnType("uuid");
b.Property("SignedUpAt")
.HasColumnType("timestamp with time zone");
b.Property("TenantId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.HasKey("Id");
b.HasIndex("ShiftId")
.HasDatabaseName("ix_shift_signups_shift_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_shift_signups_tenant_id");
b.HasIndex("ShiftId", "MemberId")
.IsUnique()
.HasDatabaseName("ix_shift_signups_shift_member");
b.ToTable("shift_signups", (string)null);
});
modelBuilder.Entity("WorkClub.Domain.Entities.WorkItem", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("AssigneeId")
.HasColumnType("uuid");
b.Property("ClubId")
.HasColumnType("uuid");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property("CreatedById")
.HasColumnType("uuid");
b.Property("Description")
.HasMaxLength(2000)
.HasColumnType("character varying(2000)");
b.Property("DueDate")
.HasColumnType("timestamp with time zone");
b.Property("RowVersion")
.IsConcurrencyToken()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("xid")
.HasColumnName("xmin");
b.Property("Status")
.HasColumnType("integer");
b.Property("TenantId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("Title")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("AssigneeId")
.HasDatabaseName("ix_work_items_assignee_id");
b.HasIndex("ClubId")
.HasDatabaseName("ix_work_items_club_id");
b.HasIndex("Status")
.HasDatabaseName("ix_work_items_status");
b.HasIndex("TenantId")
.HasDatabaseName("ix_work_items_tenant_id");
b.ToTable("work_items", (string)null);
});
#pragma warning restore 612, 618
}
}
}