using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using ReallifeGamemode.Server.Core.API;

namespace ReallifeGamemode.Database.Entities
{
  public partial class House : BankAccountHolder<HouseBankAccount>
  {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Type { get; set; }

    public int Price { get; set; }

    public float X { get; set; }
    public float Y { get; set; }
    public float Z { get; set; }

    public int RentalFee { get; set; }

    public bool CanRentIn { get; set; }

    public DateTime LastRentSetTime { get; set; }

    [NotMapped]
    public Position Position => new Position(X, Y, Z);

    [ForeignKey("Owner")]
    public int? OwnerId { get; set; }
    public User Owner { get; set; }

    public ICollection<HouseRental> Rentals { get; set; }

    public override string BankAccountName => "Haus-Konto";
  }
}
