2016-07-30 22:51:19 +02:00
|
|
|
|
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using Microsoft.AspNet.Identity.EntityFramework;
|
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Yavsc.Models
|
|
|
|
|
|
{
|
2017-01-19 12:59:49 +01:00
|
|
|
|
using Models.Relationship;
|
|
|
|
|
|
using Models.Identity;
|
|
|
|
|
|
using Models.Chat;
|
|
|
|
|
|
using Models.Bank;
|
|
|
|
|
|
using Models.Access;
|
2017-02-21 20:49:07 +01:00
|
|
|
|
using Newtonsoft.Json;
|
2017-10-04 23:53:47 +02:00
|
|
|
|
|
2016-07-30 22:51:19 +02:00
|
|
|
|
public class ApplicationUser : IdentityUser
|
|
|
|
|
|
{
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Another me, as a byte array.
|
2017-03-29 10:38:37 +02:00
|
|
|
|
/// This value points a picture that may be used
|
|
|
|
|
|
/// to present the user
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// </summary>
|
2017-03-29 10:38:37 +02:00
|
|
|
|
/// <returns>the path to an user's image, relative to it's user dir<summary>
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <see>Startup.UserFilesOptions</see>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-03-29 10:38:37 +02:00
|
|
|
|
[MaxLength(512)]
|
2016-09-23 12:29:50 +02:00
|
|
|
|
public string Avatar { get; set; }
|
2016-10-23 01:31:09 +02:00
|
|
|
|
|
|
|
|
|
|
[MaxLength(512)]
|
|
|
|
|
|
public string FullName { get; set; }
|
|
|
|
|
|
|
2017-03-29 10:38:37 +02:00
|
|
|
|
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// WIP Paypal
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[Display(Name="Account balance")]
|
2016-07-30 22:51:19 +02:00
|
|
|
|
public virtual AccountBalance AccountBalance { get; set; }
|
|
|
|
|
|
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// User's posts
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-02-21 20:49:07 +01:00
|
|
|
|
[InverseProperty("Author"),JsonIgnore]
|
2017-10-04 23:53:47 +02:00
|
|
|
|
public virtual List<Blog.BlogPost> Posts { get; set; }
|
2016-07-30 22:51:19 +02:00
|
|
|
|
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// User's contact list
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-02-21 20:49:07 +01:00
|
|
|
|
[InverseProperty("Owner"),JsonIgnore]
|
2016-07-30 22:51:19 +02:00
|
|
|
|
public virtual List<Contact> Book { get; set; }
|
|
|
|
|
|
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// External devices using the API
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-02-21 20:49:07 +01:00
|
|
|
|
[InverseProperty("DeviceOwner"),JsonIgnore]
|
2019-05-24 20:17:24 +01:00
|
|
|
|
public virtual List<DeviceDeclaration> DeviceDeclaration { get; set; }
|
2017-03-29 10:38:37 +02:00
|
|
|
|
|
2017-02-21 20:49:07 +01:00
|
|
|
|
[InverseProperty("Owner"),JsonIgnore]
|
2018-01-02 16:35:03 +01:00
|
|
|
|
public virtual List<ChatConnection> Connections { get; set; }
|
2016-11-01 23:22:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// User's circles
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-02-21 20:49:07 +01:00
|
|
|
|
[InverseProperty("Owner"),JsonIgnore]
|
2016-07-30 22:51:19 +02:00
|
|
|
|
|
|
|
|
|
|
public virtual List<Circle> Circles { get; set; }
|
2016-09-23 12:29:50 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Billing postal address
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-04-01 02:14:10 +02:00
|
|
|
|
[ForeignKeyAttribute("PostalAddressId")]
|
2016-07-30 22:51:19 +02:00
|
|
|
|
public virtual Location PostalAddress { get; set; }
|
2017-04-01 02:14:10 +02:00
|
|
|
|
public long? PostalAddressId { get; set; }
|
2016-07-30 22:51:19 +02:00
|
|
|
|
|
2016-09-23 12:29:50 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// User's Google calendar
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2018-04-14 19:33:44 +02:00
|
|
|
|
[MaxLength(512)]
|
2016-07-30 22:51:19 +02:00
|
|
|
|
public string DedicatedGoogleCalendar { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public override string ToString() {
|
|
|
|
|
|
return this.Id+" "+this.AccountBalance?.Credits.ToString()+this.Email+" "+this.UserName+" $"+this.AccountBalance?.Credits.ToString();
|
|
|
|
|
|
}
|
2016-11-04 13:55:48 +01:00
|
|
|
|
|
|
|
|
|
|
public BankIdentity BankInfo { get; set; }
|
2017-03-29 10:38:37 +02:00
|
|
|
|
|
2016-11-30 11:05:10 +01:00
|
|
|
|
public long DiskQuota { get; set; } = 512*1024*1024;
|
|
|
|
|
|
public long DiskUsage { get; set; } = 0;
|
2017-01-13 16:31:40 +01:00
|
|
|
|
|
2018-01-02 16:35:03 +01:00
|
|
|
|
public long MaxFileSize { get; set; } = 512*1024*1024;
|
|
|
|
|
|
|
2017-04-01 02:14:10 +02:00
|
|
|
|
[JsonIgnore][InverseProperty("Owner")]
|
2017-01-13 16:31:40 +01:00
|
|
|
|
public virtual List<BlackListed> BlackList { get; set; }
|
2018-05-03 15:40:58 +02:00
|
|
|
|
|
|
|
|
|
|
public bool AllowMonthlyEmail { get; set; } = false;
|
2019-05-08 01:35:10 +01:00
|
|
|
|
|
|
|
|
|
|
[JsonIgnore][InverseProperty("Owner")]
|
|
|
|
|
|
public virtual List<ChatRoom> Rooms { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[JsonIgnore][InverseProperty("User")]
|
|
|
|
|
|
public virtual List<ChatRoomAccess> RoomAccess { get; set; }
|
|
|
|
|
|
|
2016-07-30 22:51:19 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|