using System;
using System.ComponentModel.DataAnnotations;

namespace Rainbow.Models
{
    public class Domain : IAuditInfo
    {
        [Key]
        public int Id { get; set; }

        [Required, Display(Name = "Kunde")]
        public int CustomerId { get; set; }
        public virtual Customer Customer { get; set; }

        [Required, Display(Name = "Reseller")]
        public int ResellerId { get; set; }
        public virtual Customer Reseller { get; set; }

        [Required, Display(Name = "Registrar")]
        public int RegistrarId { get; set; }
        public virtual Registrar Registrar { get; set; }

        [Required, Display(Name = "Name")]
        public string Name { get; set; }

        [Display(Name = "Anmerkungen")]
        public string Comments { get; set; }

        [Display(Name = "Aktiv")]
        public bool Active { get; set; }

        [Display(Name = "Reservierungsstart")]
        public DateTime ReservationStart { get; set; }

        [Display(Name = "Reservierungsende")]
        public DateTime ReservationEnd { get; set; }

        [Display(Name = "Kündigung")]
        public DateTime? CancellationDate { get; set; }

        [Required, Display(Name = "Erstellt")]
        public DateTime Created { get; set; }

        [Display(Name = "Erstellt von")]
        public string CreatedBy { get; set; }

        [Required, Display(Name = "Geändert")]
        public DateTime LastModified { get; set; }

        [Display(Name = "Geändert von")]
        public string LastModifiedBy { get; set; }
    }
}