Em relação as boas práticas, não seria possível criar uma classe FilmeBaseDto e utilizar herança para não repetir o código das DTO's?
public class FilmeBaseDto
{
[Required(ErrorMessage = "O campo 'filme' é obrigatório")]
public string Titulo { get; set; }
[Required(ErrorMessage = "O campo 'diretor' é obrigatório")]
public string Diretor { get; set; }
public string Genero { get; set; }
[Range(1, 600, ErrorMessage = $"A duração deve estar entre 1 e 600 minutos")]
public int Duracao { get; set; }
}
public class CreateFilmeDto : FilmeBaseDto
{
}
public class ReadFilmeDto : FilmeBaseDto
{
[Key]
[Required]
public int Id { get; set; }
public string DataConsulta { get; set; }
}
Ainda, em relação as anotações, as mesmas são necessária na classe Filme.cs da pasta models, uma vez que a validação dos campos está sendo feita na DTO?