Table of Contents

Class FamiliesController

Namespace
KadicErp.WebApi.Controllers.Academy
Assembly
KadicErp.WebApi.dll

US#4 — familias: listado, ficha y estado de cuenta. US#5 (#8485) añade el alta atómica (POST /families, POST /families/{id}/students) — el resto de la frontera sigue vigente.

[ApiController]
[Route("api/academies/families")]
[Authorize]
[RequireModule("ACADEMY")]
public class FamiliesController : ControllerBase
Inheritance
object
ControllerBase
FamiliesController

Constructors

FamiliesController(IMediator)

public FamiliesController(IMediator mediator)

Parameters

mediator IMediator

Methods

AddStudent(Guid, StudentBody, CancellationToken)

US#5 — "Inscribir alumno adicional" desde la ficha de familia (pestaña Alumnos).

[HttpPost("{id:guid}/students")]
[Authorize(Policy = "ACADEMY_STUDENTS_CREATE")]
public Task<IActionResult> AddStudent(Guid id, StudentBody body, CancellationToken cancellationToken)

Parameters

id Guid
body StudentBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

AddTutor(Guid, AddTutorBody, CancellationToken)

US#9021 — agrega un tutor a una familia ya existente (ficha de familia).

[HttpPost("{id:guid}/tutors")]
[Authorize(Policy = "ACADEMY_FAMILIES_UPDATE")]
public Task<IActionResult> AddTutor(Guid id, AddTutorBody body, CancellationToken cancellationToken)

Parameters

id Guid
body AddTutorBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

Create(CreateFamilyBody, CancellationToken)

CA1/CA6 — US#5: alta atómica de familia + tutor + N alumnos con su expediente completo.

[HttpPost]
[Authorize(Policy = "ACADEMY_FAMILIES_CREATE")]
public Task<IActionResult> Create(CreateFamilyBody body, CancellationToken cancellationToken)

Parameters

body CreateFamilyBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetAll(PaginatorRequestDto, bool, CancellationToken)

[HttpGet]
[Authorize(Policy = "ACADEMY_FAMILIES_VIEW")]
public Task<IActionResult> GetAll(PaginatorRequestDto paginator, bool overdueOnly, CancellationToken cancellationToken)

Parameters

paginator PaginatorRequestDto
overdueOnly bool
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetById(Guid, CancellationToken)

[HttpGet("{id:guid}")]
[Authorize(Policy = "ACADEMY_FAMILIES_VIEW_DETAIL")]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetStatement(Guid, CancellationToken)

[HttpGet("{id:guid}/statement")]
[Authorize(Policy = "ACADEMY_FAMILIES_ACCOUNT_VIEW")]
public Task<IActionResult> GetStatement(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

SendReminder(Guid, SendReminderBody?, CancellationToken)

[HttpPost("{id:guid}/reminder")]
[Authorize(Policy = "ACADEMY_FAMILIES_SEND_REMINDER")]
public Task<IActionResult> SendReminder(Guid id, SendReminderBody? body, CancellationToken cancellationToken)

Parameters

id Guid
body SendReminderBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

Update(Guid, UpdateFamilyBody, CancellationToken)

[HttpPut("{id:guid}")]
[Authorize(Policy = "ACADEMY_FAMILIES_UPDATE")]
public Task<IActionResult> Update(Guid id, UpdateFamilyBody body, CancellationToken cancellationToken)

Parameters

id Guid
body UpdateFamilyBody
cancellationToken CancellationToken

Returns

Task<IActionResult>