using OmsorgCore.Domain.Common;

namespace OmsorgCore.Domain.Entities;

/// <summary>
/// Core-Objekt "Vertrag" — verbindliche Vereinbarung mit Mitarbeiter oder Einrichtung
/// (REQUIREMENTS.md Abschnitt 6, Blueprint 19.3).
/// </summary>
public class Contract : AuditableEntity
{
    public string ContractType { get; set; } = string.Empty;

    public Guid? EmployeeId { get; set; }
    public Employee? Employee { get; set; }

    public Guid? FacilityId { get; set; }
    public Facility? Facility { get; set; }

    public DateOnly StartDate { get; set; }
    public DateOnly? EndDate { get; set; }
    public string Status { get; set; } = "Entwurf";

    public decimal? WeeklyHours { get; set; }
    public decimal? HourlyWage { get; set; }
    public string? AllowancesDescription { get; set; }
    public string? OvertimeRules { get; set; }
    public int? VacationDaysPerYear { get; set; }
    public int? ProbationPeriodMonths { get; set; }
}
