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

namespace Strata.Code.DataAccess.Models;

[Keyless]
public partial class ViewReimbursementAdjustment
{
    [Column("AdjustmentGUID")]
    public Guid AdjustmentGuid { get; set; }

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

    public byte AdjustmentType { get; set; }

    [Column(TypeName = "decimal(18, 0)")]
    public decimal Value { get; set; }

    [Column("AdjustmentFilterJSON")]
    public string AdjustmentFilterJson { get; set; } = null!;

    [Column("GroupingHierarchyJSON")]
    public string GroupingHierarchyJson { get; set; } = null!;

    [StringLength(100)]
    public string AdjustedProperty { get; set; } = null!;

    public string Comment { get; set; } = null!;

    [Column("AuthorGUID")]
    public Guid AuthorGuid { get; set; }

    [StringLength(260)]
    public string AuthorFullName { get; set; } = null!;

    [Column("GroupingGUID")]
    public Guid GroupingGuid { get; set; }

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

    [Column("ClassificationGroupID")]
    public int ClassificationGroupId { get; set; }

    [Column("ClassificationCategoryID")]
    public int ClassificationCategoryId { get; set; }

    public bool IsRecordDeleted { get; set; }

    [Column(TypeName = "datetime")]
    public DateTime DateCreatedUtc { get; set; }

    [Column(TypeName = "datetime")]
    public DateTime LastModifiedDateUtc { get; set; }

    public string DimensionMemberJson { get; set; } = null!;

    public int AffectedDataCount { get; set; }

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

    public bool IsCarryForward { get; set; }

    [Column("AdjustmentID")]
    public int AdjustmentId { get; set; }

    [Column("BudgetPhaseID")]
    public byte BudgetPhaseId { get; set; }
}
