using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;

namespace Strata.Code.DataAccess.Models;

[Table("StaffingInitialPlanConfigDetail", Schema = "fp")]
public partial class StaffingInitialPlanConfigDetail
{
    [Key]
    [Column("RowID")]
    public int RowId { get; set; }

    [Column("BudgetConfigGUID")]
    public Guid BudgetConfigGuid { get; set; }

    [Column("BudgetConfigID")]
    public short BudgetConfigId { get; set; }

    [Column("DepartmentID")]
    public int DepartmentId { get; set; }

    [Column("JobCodeID")]
    public int JobCodeId { get; set; }

    [Column("ProductiveClassID")]
    public int ProductiveClassId { get; set; }

    [Column("PayCodeGroupID")]
    public int PayCodeGroupId { get; set; }

    [Column("VariabilityID")]
    public int VariabilityId { get; set; }

    [Column("TimeClassID")]
    public byte TimeClassId { get; set; }

    [Column("UnitTypeID")]
    public byte UnitTypeId { get; set; }

    [Column("EmployeeID")]
    public int EmployeeId { get; set; }

    [Column("ProviderID")]
    public int ProviderId { get; set; }

    [Column("ProviderLineItemID")]
    public int ProviderLineItemId { get; set; }

    [Column("ProviderTypeID")]
    public int ProviderTypeId { get; set; }

    [Column("ProviderSpecialtyID")]
    public int ProviderSpecialtyId { get; set; }

    [Column("ProjectionMethodID")]
    public int ProjectionMethodId { get; set; }

    public byte TrailingMonths { get; set; }

    [Column("VersionID")]
    public int VersionId { get; set; }

    [ForeignKey("BudgetConfigGuid")]
    [InverseProperty("StaffingInitialPlanConfigDetails")]
    public virtual BudgetConfig BudgetConfig { get; set; } = null!;
}
