using Fitness_core_BE.Models.Enums; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Fitness_core_BE.Models { public class ClientPayoutKyc { [Key] public Guid Id { get; set; } public Guid FKClientId { get; set; } [ForeignKey("FKClientId")] public virtual Client Client { get; set; } public int? BrCertificateDocId { get; set; } [ForeignKey("BrCertificateDocId")] public virtual UserDocument? BrCertificateDoc { get; set; } public int? BankProofDocId { get; set; } [ForeignKey("BankProofDocId")] public virtual UserDocument? BankProofDoc { get; set; } // Legacy payout-KYC uploads. New gateway onboarding reuses the NIC front // and back collected during owner activation instead of uploading it again. public int? NicDocId { get; set; } [ForeignKey("NicDocId")] public virtual UserDocument? NicDoc { get; set; } // GatewayDefinition lives in Payment-Service, so this is an external // catalog identifier rather than an EF foreign key. public Guid? SelectedGatewayId { get; set; } [MaxLength(100)] public string? SelectedGatewayName { get; set; } public KycStatus KycStatus { get; set; } = KycStatus.Pending; public DateTime SubmittedAt { get; set; } = DateTime.UtcNow; public DateTime? ReviewedAt { get; set; } [MaxLength(500)] public string? RejectionReason { get; set; } public Guid? ReviewedByAdminId { get; set; } [ForeignKey("ReviewedByAdminId")] public virtual Admin? ReviewedByAdmin { get; set; } } }