using System.ComponentModel.DataAnnotations; namespace GerbilManagerWebAPI.Models { /// A tank/cage (Becken) that gerbils currently live in. public class Enclosure { [Key] public Guid Id { get; set; } public required string Name { get; set; } public string? Notes { get; set; } // Reinigungszyklus (aus RennmausPro becken_tb: _SIZE/_MENGE/_CLEANED/_CYCLUS). /// Maße als Freitext (z. B. "120×50 cm"). public string? Size { get; set; } /// Empfohlene/maximale Tieranzahl. public int? Capacity { get; set; } /// Datum der letzten Reinigung. public DateOnly? LastCleanedDate { get; set; } /// Reinigungsintervall in Tagen. public int? CleaningCycleDays { get; set; } /// Nächste fällige Reinigung = LastCleanedDate + CleaningCycleDays (berechnet, nicht persistiert). public DateOnly? NextCleaningDate => LastCleanedDate is { } last && CleaningCycleDays is { } cycle and > 0 ? last.AddDays(cycle) : null; public ICollection Gerbils { get; } = new List(); } }