Más ServiceStack solicitar asesoramiento DTO

Este es un seguimiento con respecto a:

Solicitud de ServiceStack diseño DTO

En la pregunta anterior, el diseño se refería estrictamente a las operaciones de lectura. ¿Qué pasa con las operaciones de escritura? Digamos que deseamos agregar operaciones para crear un nuevo límite de reserva, ¿sería apropiado reutilizar el nombre aquí?

[Route("/bookinglimits/","POST")]
public class CreateBookingLimit : IReturn<BookingLimit>
{      
     BookingLimit newBookingLimit
}

-O BIEN- ¿Sería este un mejor diseño?

[Route("/bookinglimits/","POST")]
public class CreateBookingLimit : IReturn<BookingLimit>
{      
  public int ShiftId { get; set; }
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; set; }
  public int Limit { get; set; }    }
}

Además, si quisiéramos agregar edición, ¿deberíamos insertar y editar compartir los mismos modelos y agregar la ID?

[Route("/bookinglimits/","POST")]
[Route("/bookinglimits/{Id}/","PUT")]
public class CreateBookingLimit : IReturn<BookingLimit>
{      
  public int Id { get; set; }
  public int ShiftId { get; set; }
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; set; }
  public int Limit { get; set; }    }
}

Estoy tratando de entender cuando tiene más sentido reutilizar POCO y cuando tiene más sentido separar las intenciones.

Respuestas a la pregunta(1)

Su respuesta a la pregunta