Add tenant services

This commit is contained in:
2025-08-03 15:19:16 -06:00
parent 7c92a7e791
commit 0eadd6e217
18 changed files with 1134 additions and 514 deletions

View File

@@ -0,0 +1,96 @@
// ***********************************************************************
// <copyright file="TenantRequest.cs">
// AgileWebs
// </copyright>
// ***********************************************************************
using MongoDB.Bson.Serialization.Attributes;
namespace Core.Thalos.Domain.Contexts.Onboarding.Request
{
/// <summary>
/// Represents a tenant creation request with business and contact details.
/// </summary>
public class TenantRequest
{
/// <summary>
/// The legal or commercial name of the tenant.
/// </summary>
[BsonElement("name")]
public string Name { get; set; } = null!;
/// <summary>
/// The tax identification number of the tenant (e.g., RFC, VAT).
/// </summary>
[BsonElement("taxIdentifier")]
public string TaxIdentifier { get; set; } = null!;
/// <summary>
/// The primary address line (street, number, etc.).
/// </summary>
[BsonElement("addressLine1")]
public string AddressLine1 { get; set; } = null!;
/// <summary>
/// An optional second address line (apartment, suite, etc.).
/// </summary>
[BsonElement("addressLine2")]
[BsonIgnoreIfNull]
public string? AddressLine2 { get; set; }
/// <summary>
/// The city where the tenant is located.
/// </summary>
[BsonElement("city")]
public string City { get; set; } = null!;
/// <summary>
/// The state, province, or region of the tenant.
/// </summary>
[BsonElement("state")]
public string State { get; set; } = null!;
/// <summary>
/// The country of the tenant.
/// </summary>
[BsonElement("country")]
public string Country { get; set; } = null!;
/// <summary>
/// The postal or ZIP code of the tenants location.
/// </summary>
[BsonElement("postalCode")]
public string PostalCode { get; set; } = null!;
/// <summary>
/// The main email address for contacting the tenant.
/// </summary>
[BsonElement("contactEmail")]
public string ContactEmail { get; set; } = null!;
/// <summary>
/// The main phone number for contacting the tenant.
/// </summary>
[BsonElement("contactPhone")]
public string ContactPhone { get; set; } = null!;
/// <summary>
/// The tenants website URL, if available.
/// </summary>
[BsonElement("website")]
[BsonIgnoreIfNull]
public string? Website { get; set; }
/// <summary>
/// The database connection string for the tenant, if applicable.
/// </summary>
[BsonElement("connectionString")]
[BsonIgnoreIfNull]
public string? ConnectionString { get; set; }
/// <summary>
/// Indicates whether the tenant uses an isolated database.
/// </summary>
[BsonElement("isolated")]
public bool Isolated { get; set; }
}
}