using Marco.Pms.Model.Employees;
using Marco.Pms.Model.Utilities;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
using System.ComponentModel.DataAnnotations.Schema;

namespace Marco.Pms.Model.OrganizationModel
{
    public class ProjectOrgMapping : TenantRelation
    {
        public Guid Id { get; set; }
        public Guid OrganizationId { get; set; }

        [ValidateNever]
        [ForeignKey("OrganizationId")]
        public Organization? Organization { get; set; }
        public Guid ParentOrganizationId { get; set; }

        [ValidateNever]
        [ForeignKey("ParentOrganizationId")]
        public Organization? ParentOrganization { get; set; }
        public Guid ProjectServiceId { get; set; }

        [ValidateNever]
        [ForeignKey("ProjectServiceId")]
        public ProjectServiceMapping? ProjectService { get; set; }
        public Guid OrganizationTypeId { get; set; }

        [ValidateNever]
        [ForeignKey("OrganizationTypeId")]
        public OrgTypeMaster? OrganizationType { get; set; }

        public Guid AssignedById { get; set; }

        [ValidateNever]
        [ForeignKey("AssignedById")]
        public Employee? AssignedBy { get; set; }
        public DateTime AssignedDate { get; set; }
        public DateTime? CompletionDate { get; set; }
    }
}
