57 lines
1.7 KiB
C#

using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using Marco.Pms.Model.DocumentManager;
using Marco.Pms.Model.Dtos.Attendance;
using Marco.Pms.Model.Employees;
using Marco.Pms.Model.Entitlements;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
namespace Marco.Pms.Model.AttendanceModule
{
public class AttendanceLog
{
public int Id { get; set; }
public string Comment { get; set; } = string.Empty;
public int AttendanceId { get; set; }
[ForeignKey("AttendanceId")]
[ValidateNever]
public Attendance? Attendance { get; set; }
public int EmployeeID { get; set; }
[ForeignKey("EmployeeID")]
[ValidateNever]
public Employee? Employee { get; set; }
public DateTime? ActivityTime { get; set; }
/// <summary>
/// CheckIn, CheckOut, RequestRegularize, Regularize, Reject
/// </summary>
public ATTENDANCE_MARK_TYPE Activity { get; set; }
public byte[]? Photo { get; set; } // To store the captured photo
public string? Latitude { get; set; }
public string? Longitude { get; set; }
public DateTime UpdatedOn { get; set; }
public int? UpdatedBy { get; set; }
[ForeignKey("UpdatedBy")]
[ValidateNever]
public Employee? UpdatedByEmployee { get; set; }
public Guid? DocumentId { get; set; }
[ForeignKey("DocumentId")]
[ValidateNever]
public Document? Document { get; set; }
[DisplayName("TenantId")]
public int TenantId { get; set; }
[ValidateNever]
[ForeignKey(nameof(TenantId))]
public Tenant? Tenant { get; set; }
}
}