97 lines
3.0 KiB
C#
97 lines
3.0 KiB
C#
// ***********************************************************************
|
||
// <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 tenant’s 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 tenant’s 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; }
|
||
}
|
||
}
|