using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Domain.Base; using gehGassi.Domain.Common; namespace gehGassi.Domain.Dogs { /// /// Repräsentiert ein Rudel /// public class DogPack : SyncEntity, IAuditable { /// /// Id des Hundeausführers /// [Required] [MaxLength(128)] public string DogWalkererId { get; set; } /// /// Name des Rudels /// [Required] [MaxLength(100)] public string Name { get; set; } /// /// Optional - Foto des Rudels .... oder Icon? /// [MaxLength(500)] public string Photo { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } #region IAuditable /// /// Gibt den eindeutigen Key für die Entität zurück; /// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind. /// /// Eindeutiger Key public string AuditKey() { return Id.ToString(); } /// /// Gibt den Objektnamen bzw. die Tabelle der Entität zurück /// /// Objektnamen public string AuditTable() { return "DogPacks"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } /// /// Repräsentiert einen Hund in einem Rudel /// public class DogPackMember : SyncEntity, IAuditable { /// /// Id des Rudesl /// [Required] [MaxLength(128)] public string DogPackId { get; set; } /// /// Id des Hundes /// [Required] [MaxLength(128)] public string DogId { get; set; } /// /// Datum der Erstellung - Beitritt /// public DateTimeOffset Created { get; set; } #region IAuditable /// /// Gibt den eindeutigen Key für die Entität zurück; /// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind. /// /// Eindeutiger Key public string AuditKey() { return Id.ToString(); } /// /// Gibt den Objektnamen bzw. die Tabelle der Entität zurück /// /// Objektnamen public string AuditTable() { return "DogPacks"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } }