193 lines
4.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using gehGassi.Dto.Common;
namespace gehGassi.Dto.Ratings
{
/// <summary>
/// DTO für ein Rating
/// </summary>
public class RatingDto : SyncEntityDto
{
/// <summary>
/// Wer hat das Rating erstellt?
/// </summary>
[Required]
[MaxLength(128)]
public string FromId { get; set; }
/// <summary>
/// Typ der Quelle des Ratings
/// </summary>
[Required]
public AppUserTypeDto FromType { get; set; }
/// <summary>
/// Ziel Id des Ratings
/// </summary>
[Required]
[MaxLength(128)]
public string TargetId { get; set; }
/// <summary>
/// Ziel-Typ
/// </summary>
[Required]
public RatingTargetDto TargetType { get; set; }
/// <summary>
/// Vergebene Bewertung
/// </summary>
[Required]
public decimal Points { get; set; }
/// <summary>
/// Anmerkungen zum Rating
/// </summary>
[MaxLength(500)]
public string Info { get; set; }
/// <summary>
/// Wann erstellt?
/// </summary>
[Required]
public DateTimeOffset Created { get; set; }
}
/// <summary>
/// DTO für die Abfrage von Rating-Check.
/// Betrifft Hat schon bewertet, darf bewerten
/// </summary>
public class RatingCheckQueryDto
{
/// <summary>
/// Wer hat das Rating erstellt?
/// </summary>
[Required]
[MaxLength(128)]
public string FromId { get; set; }
/// <summary>
/// Typ der Quelle des Ratings
/// </summary>
[Required]
public AppUserTypeDto FromType { get; set; }
/// <summary>
/// Ziel Id des Ratings
/// </summary>
[Required]
[MaxLength(128)]
public string TargetId { get; set; }
/// <summary>
/// Ziel-Typ
/// </summary>
[Required]
public RatingTargetDto TargetType { get; set; }
}
/// <summary>
/// DTO für die Abfrage von Ratings
/// </summary>
public class RatingsQueryDto : QueryDto
{
/// <summary>
/// Wer hat das Rating erstellt?
/// </summary>
public string FromId { get; set; }
/// <summary>
/// Typ der Quelle des Ratings
/// </summary>
public AppUserTypeDto? FromType { get; set; }
/// <summary>
/// Ziel Id des Ratings
/// </summary>
public string TargetId { get; set; }
/// <summary>
/// Ziel-Typ
/// </summary>
public RatingTargetDto? TargetType { get; set; }
}
/// <summary>
/// Repräsentiert ein Rating das von jemanden für jemanden oder etwas vergeben wurde mit Namen augelöst
/// </summary>
public class RatingWithNamesDto : SyncEntityDto
{
/// <summary>
/// Wer hat das Rating erstellt?
/// </summary>
public string FromId { get; set; }
/// <summary>
/// Name des Rating Erstellers
/// </summary>
public string FromName { get; set; }
/// <summary>
/// Photo des Ratings Erstellers
/// </summary>
public string FromPhoto { get; set; }
/// <summary>
/// Typ der Quelle des Ratings
/// </summary>
public AppUserTypeDto FromType { get; set; }
/// <summary>
/// Ziel Id des Ratings
/// </summary>
public string TargetId { get; set; }
/// <summary>
/// Name des Rating Ziels
/// </summary>
public string TargetName { get; set; }
/// <summary>
/// Photo des Ratings Ziels
/// </summary>
public string TargetPhoto { get; set; }
/// <summary>
/// Ziel-Typ
/// </summary>
public RatingTargetDto TargetType { get; set; }
/// <summary>
/// Vergebene Bewertung
/// </summary>
public decimal Points { get; set; }
/// <summary>
/// Anmerkungen zum Rating
/// </summary>
public string Info { get; set; }
/// <summary>
/// Wann erstellt?
/// </summary>
public DateTimeOffset Created { get; set; }
#region Erweiterung Blockier- und Sperrinfo
/// <summary>
/// Blockiert
/// </summary>
public bool FromBlocked { get; set; }
/// <summary>
/// Gesperrt
/// </summary>
public bool FromLocked { get; set; }
#endregion
}
}