Рассмотрим эту модель lb4
@model({
name: 'users'
})
export class User extends Entity {
@property({
type: 'number',
id: true,
})
id: number;
@property({
type: 'string',
required: true,
})
first_name: string;
@property({
type: 'string',
})
middle_name?: string;
@property({
type: 'string',
})
last_name?: string;
@property({
type: 'string',
required: true,
})
username: string;
@property({
type: 'string',
})
email?: string;
@property({
type: 'string',
})
phone?: string;
@property({
type: 'string',
required: true,
})
password: string;
@property({
type: 'string',
})
external_id: string;
@belongsTo(() => UserTenant)
created_by: number;
@belongsTo(() => UserTenant)
modified_by: number;
constructor(data?: Partial<User>) {
super(data);
}
}
В настоящее время, если мы создадим репозиторий и контроллер для этой модели, используя lb4 cli, он сгенерирует методы маршрутизации CRUD с этой же моделью в качестве ввода / вывода.Однако нам нужно иметь отдельную модель DTO (не сохраненную в БД), используемую в качестве DTO ввода / вывода для контроллера, за исключением свойств password, create_by иified_by.Один из способов - вручную создать такой класс модели и записать класс преобразователя, который преобразует объект UserDTO в модель пользователя выше (скопируйте отдельные свойства).Но это похоже на накладные расходы.Более того, мы хотим, чтобы это было сделано для многих других моделей.Таким образом, делать это таким образом не кажется правильным подходом.Предоставляет ли lb4 лучший способ добиться этого?