Table of Contents

Class TenantBranchConfigController

Namespace
KadicErp.WebApi.Controllers.Config
Assembly
KadicErp.WebApi.dll
[ApiController]
[Authorize]
[Route("api/config/tenant-branch-config")]
public class TenantBranchConfigController : ControllerBase
Inheritance
object
ControllerBase
TenantBranchConfigController

Constructors

TenantBranchConfigController(IMediator)

public TenantBranchConfigController(IMediator mediator)

Parameters

mediator IMediator

Methods

Create(CreateTenantBranchConfigCommand, CancellationToken)

[HttpPost]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_CREATE")]
[ProducesResponseType(typeof(Result), 201)]
[ProducesResponseType(typeof(Result), 400)]
[ProducesResponseType(typeof(Result), 409)]
public Task<IActionResult> Create(CreateTenantBranchConfigCommand command, CancellationToken cancellationToken = default)

Parameters

command CreateTenantBranchConfigCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetAll(PaginatorRequestDto, CancellationToken)

[HttpGet]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_VIEW")]
[ProducesResponseType(typeof(PaginatorResponseDto<TenantBranchConfigDto>), 200)]
public Task<IActionResult> GetAll(PaginatorRequestDto paginator, CancellationToken cancellationToken = default)

Parameters

paginator PaginatorRequestDto
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetById(Guid, CancellationToken)

[HttpGet("{id:guid}")]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_VIEW")]
[ProducesResponseType(typeof(TenantBranchConfigDto), 200)]
[ProducesResponseType(404)]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken = default)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetFinalConsumer(Guid, CancellationToken)

[HttpGet("{id:guid}/final-consumer")]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_VIEW")]
[ProducesResponseType(typeof(FinalConsumerInfoDto), 200)]
[ProducesResponseType(404)]
public Task<IActionResult> GetFinalConsumer(Guid id, CancellationToken cancellationToken = default)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

Update(Guid, UpdateTenantBranchConfigCommand, CancellationToken)

[HttpPut("{id:guid}")]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_UPDATE")]
[ProducesResponseType(typeof(Result), 200)]
[ProducesResponseType(typeof(Result), 400)]
[ProducesResponseType(typeof(Result), 404)]
public Task<IActionResult> Update(Guid id, UpdateTenantBranchConfigCommand command, CancellationToken cancellationToken = default)

Parameters

id Guid
command UpdateTenantBranchConfigCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

UpdateBillingValidation(Guid, UpdateTenantBranchConfigBillingValidationCommand, CancellationToken)

US#87 (#8565/#8814) — reporte original de David: "Brand defaults - solo admin puede activar y desactivar modo de facturación". Separado del PUT general de arriba a propósito: ese lo puede tocar cualquiera con CONFIG_TENANT_BRANCH_CONFIG_UPDATE; este endpoint es el único camino que puede cambiar ValidateInitialPaymentInvoice, y solo Platform Admin (bypass automático) o el rol ADMIN del tenant (con el permiso concedido) pueden pasar la policy.

[HttpPatch("{id:guid}/billing-validation")]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_BILLING_VALIDATION_UPDATE")]
[ProducesResponseType(typeof(Result), 200)]
[ProducesResponseType(typeof(Result), 403)]
[ProducesResponseType(typeof(Result), 404)]
public Task<IActionResult> UpdateBillingValidation(Guid id, UpdateTenantBranchConfigBillingValidationCommand command, CancellationToken cancellationToken = default)

Parameters

id Guid
command UpdateTenantBranchConfigBillingValidationCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

UpdateGuarantorPrompt(Guid, UpdateTenantBranchConfigGuarantorPromptCommand, CancellationToken)

Mismo patrón que UpdateBillingValidation arriba, aplicado a "Garante en Renta de Vehículos": separado del PUT general -- ese lo puede tocar cualquiera con CONFIG_TENANT_BRANCH_CONFIG_UPDATE; este endpoint es el único camino que puede cambiar IsGarantorPromptEnabled/GuarantorMinimumAge, y solo Platform Admin (bypass automático) o el rol ADMIN del tenant (con el permiso concedido) pueden pasar la policy.

[HttpPatch("{id:guid}/guarantor-prompt")]
[Authorize(Policy = "CONFIG_TENANT_BRANCH_CONFIG_GUARANTOR_PROMPT_UPDATE")]
[ProducesResponseType(typeof(Result), 200)]
[ProducesResponseType(typeof(Result), 403)]
[ProducesResponseType(typeof(Result), 404)]
public Task<IActionResult> UpdateGuarantorPrompt(Guid id, UpdateTenantBranchConfigGuarantorPromptCommand command, CancellationToken cancellationToken = default)

Parameters

id Guid
command UpdateTenantBranchConfigGuarantorPromptCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>