using Models;
using Endpoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LocalEndpoint.Data;
using System.Security.Cryptography;

namespace LocalEndpoint
{
    internal class AuthService : IAuthService
    {
        private readonly Database db;


        public AuthService(Database db)
        {
            this.db = db;
        }

        public Account? Login(string email, string password)
        {
            return db.GetAccount(email, password);
        }

        public Account? Register(string email, string username, string password)
        {
            if (email == null || username == null || password == null)
                return null;

            var userAccount = new Account(new User(Constants.DEFAULT_ACCOUNT_IMAGE, username, Guid.NewGuid()), email);
            db.InsertAccount(userAccount, password);
            return userAccount;
        }
    }
}
