using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AyCode.Entities.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Products;
using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders;

namespace TIAM.Entities.Users
{
    public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider, Address>, IUser
    {
        public virtual List<Product> Products { get; } = new();

        //public virtual ServiceProvider ServiceProvider { get; set; } = new();
        public virtual List<UserProductMapping> UserProductMappings { get; } = new();

        public User() { }
        public User(string email, string password) : this(Guid.NewGuid(), email, password) { }
        public User(Guid id, string email, string password) : base(id, email, password)
        { }
        public User(Guid id, string email, string phoneNumber, string password) : base(id, email, phoneNumber, password)
        { }
        public User(Guid id, string email, string phoneNumber, string password, string refreshToken) : base(id, email, phoneNumber, password, refreshToken)
        { }

    }
}
