Files
Core.Thalos.DAL.API/Core.Thalos.Domain/Contexts/Onboarding/Request/TenantRequest.cs
2025-08-03 15:19:16 -06:00

97 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ***********************************************************************
// <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; }
}
}