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