PlanTempusApp/PlanTempus.X.BDD/Class1.cs
Janus C. H. Knudsen 88812177a9 Migrate from User to Account domain concept
Renames core domain entities and services from "User" to "Account"

Refactors project-wide namespaces, classes, and database tables to use "Account" terminology
Updates related components, services, and database schema to reflect new domain naming
Standardizes naming conventions across authentication and organization setup features
2026-01-09 22:14:46 +01:00

154 lines
4.2 KiB
C#

// PlanTempus.X.Services.cs
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace PlanTempus.X.Services
{
// Models
public class Account
{
public string Id { get; set; }
public string Email { get; set; }
public bool EmailConfirmed { get; set; }
public string Password { get; set; }
public bool IsLocked { get; set; }
public DateTime? LockoutEnd { get; set; }
}
public class Organization
{
public string Id { get; set; }
public string Name { get; set; }
public string CreatedBy { get; set; }
}
public class AccountOrganization
{
public string AccountId { get; set; }
public string OrganizationId { get; set; }
public string Role { get; set; }
}
// Service interfaces
public interface IAccountService
{
Task<Account> CreateAccountAsync(string email, string password);
Task<Account> GetAccountByEmailAsync(string email);
Account GetAccountByEmail(string email);
Task ConfirmEmailAsync(string confirmationToken);
}
public interface IEmailService
{
Task<string> GetConfirmationLinkForEmail(string email);
bool WasConfirmationEmailSent(string email);
}
public interface IOrganizationService
{
Task<Organization> SetupOrganizationAsync(string accountId, string orgName, string password);
Task<Organization> CreateOrganizationAsync(string accountId, string orgName);
}
public interface IAccountOrganizationService
{
AccountOrganization GetAccountOrganization(string accountId, string organizationId);
List<AccountOrganization> GetAccountOrganizations(string accountId);
}
public interface ITenantService
{
bool ValidateTenantTablesExist(string organizationId);
}
public interface IAuthService
{
bool IsAccountAuthenticated(string accountId);
Task<bool> AttemptLoginAsync(string email, string password);
}
// Service implementations
public class AccountService : IAccountService
{
public async Task<Account> CreateAccountAsync(string email, string password)
{
throw new NotImplementedException("CreateAccountAsync not implemented");
}
public async Task<Account> GetAccountByEmailAsync(string email)
{
throw new NotImplementedException("GetAccountByEmailAsync not implemented");
}
public Account GetAccountByEmail(string email)
{
throw new NotImplementedException("GetAccountByEmail not implemented");
}
public async Task ConfirmEmailAsync(string confirmationToken)
{
throw new NotImplementedException("ConfirmEmailAsync not implemented");
}
}
public class EmailService : IEmailService
{
public async Task<string> GetConfirmationLinkForEmail(string email)
{
throw new NotImplementedException("GetConfirmationLinkForEmail not implemented");
}
public bool WasConfirmationEmailSent(string email)
{
throw new NotImplementedException("WasConfirmationEmailSent not implemented");
}
}
public class OrganizationService : IOrganizationService
{
public async Task<Organization> SetupOrganizationAsync(string accountId, string orgName, string password)
{
throw new NotImplementedException("SetupOrganizationAsync not implemented");
}
public async Task<Organization> CreateOrganizationAsync(string accountId, string orgName)
{
throw new NotImplementedException("CreateOrganizationAsync not implemented");
}
}
public class AccountOrganizationService : IAccountOrganizationService
{
public AccountOrganization GetAccountOrganization(string accountId, string organizationId)
{
throw new NotImplementedException("GetAccountOrganization not implemented");
}
public List<AccountOrganization> GetAccountOrganizations(string accountId)
{
throw new NotImplementedException("GetAccountOrganizations not implemented");
}
}
public class TenantService : ITenantService
{
public bool ValidateTenantTablesExist(string organizationId)
{
throw new NotImplementedException("ValidateTenantTablesExist not implemented");
}
}
public class AuthService : IAuthService
{
public bool IsAccountAuthenticated(string accountId)
{
throw new NotImplementedException("IsAccountAuthenticated not implemented");
}
public async Task<bool> AttemptLoginAsync(string email, string password)
{
throw new NotImplementedException("AttemptLoginAsync not implemented");
}
}
}