using System; using System.ComponentModel.DataAnnotations; using gehGassi.Domain.Base; using gehGassi.Domain.Common; namespace gehGassi.Domain.Walks { /// /// Repräsentiert eine Beschwerde über einen Walk /// public class WalkComplaint : SyncEntity, IAuditable { /// /// Id des Walks /// [Required] [MaxLength(128)] public string WalkId { get; set; } /// /// Wer hat die Beschwerde erstellt? /// [Required] public WalkComplaintSource Source { get; set; } /// /// Art der Beschwerde /// [Required] public WalkComplaintType Type { get; set; } /// /// Nachricht zur Beschwerde /// [Required] [MaxLength(1000)] public string Message { get; set; } /// /// Status der Beschwerde /// [Required] public WalkComplaintStatus Status { get; set; } /// /// Gehgassi Benutzer der die Beschwerde zuletzt bearbeitet hat /// [MaxLength(256)] public string UserName { get; set; } /// /// Kommentar zur Beschwerde von gehgassi /// public string Comment { get; set; } /// /// Datum der Lösung der Beschwerde /// public DateTimeOffset? Resolved { get; set; } /// /// Datum der Erstellung der Beschwerde /// [Required] 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 "WalkComplaints"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } /// /// Repräsentiert eine Beschwerde über einen Walk mit Namen aufgelöst /// public class WalkComplaintWithNames : SyncEntityVw { /// /// Id des Walks /// public string WalkId { get; set; } /// /// Art der Walk Anfrage /// public WalkType WalkType { get; set; } /// /// Welche Art von Service soll durchgeführt werden /// public WalkServiceType WalkServiceType { get; set; } /// /// Name des DogWalkers /// public string DogWalkerName { get; set; } /// /// Foto des Dogwalkers /// public string DogWalkerPhoto { get; set; } /// /// Name des Hundebesitzers /// public string DogOwnerName { get; set; } /// /// Foto des Hundebesitzers /// public string DogOwnerPhoto { get; set; } /// /// Startdatum des Walks mit Urhrzeit /// public DateTimeOffset WalkStart { get; set; } /// /// Enddatum des Walks mit Uhrzeit /// public DateTimeOffset WalkEnd { get; set; } /// /// Abholadresse - ISO2 Ländercode /// public string PickupAddress_CountryCode { get; set; } /// /// Preis für den Walk / Das Sitting. Wird gesetzt und kann entweder fix sein (öffentliche Anfrage) oder errechnet /// public decimal WalkPrice { get; set; } /// /// Wer hat die Beschwerde erstellt? /// public WalkComplaintSource Source { get; set; } /// /// Art der Beschwerde /// public WalkComplaintType Type { get; set; } /// /// Status der Beschwerde /// public WalkComplaintStatus Status { get; set; } /// /// Gehgassi Benutzer der die Beschwerde zuletzt bearbeitet hat /// public string UserName { get; set; } /// /// Datum der Lösung der Beschwerde /// public DateTimeOffset? Resolved { get; set; } /// /// Datum der Erstellung der Beschwerde /// public DateTimeOffset Created { get; set; } } }