using Marco.Pms.Model.Master;
using Marco.Pms.Model.OrganizationModel;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
using System.ComponentModel.DataAnnotations.Schema;

namespace Marco.Pms.Model.TenantModels
{
    public class Tenant
    {
        public Guid Id { get; set; }
        public string Name { get; set; } = string.Empty;
        public string Email { get; set; } = string.Empty;
        public string? Description { get; set; }
        public string? DomainName { get; set; }
        public string ContactName { get; set; } = string.Empty;
        public string ContactNumber { get; set; } = string.Empty;
        public string? OfficeNumber { get; set; }
        public string BillingAddress { get; set; } = string.Empty;
        public string? TaxId { get; set; }
        public string? logoImage { get; set; }   // Base64
        public DateTime OnBoardingDate { get; set; }
        public string? OrganizationSize { get; set; }
        public Guid? IndustryId { get; set; }

        [ForeignKey("IndustryId")]
        [ValidateNever]
        public Industry? Industry { get; set; }
        public Guid? CreatedById { get; set; }  // EmployeeId
        public Guid TenantStatusId { get; set; }

        [ForeignKey("TenantStatusId")]
        [ValidateNever]
        public TenantStatus? TenantStatus { get; set; }
        public string Reference { get; set; } = string.Empty;

        public bool IsActive { get; set; } = true;
        public bool IsSuperTenant { get; set; } = false;
        public Guid OrganizationId { get; set; } = Guid.Parse("4e3a6d31-c640-40f7-8d67-6c109fcdb9ea");

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