Doctine ORM: различный маппинг одного и того же класса
Давайте представим, что в базе данных есть таблица заказов:
+-----+--------------+------------+----------+
| id | total_price | commission | currency |
+-----+--------------+------------+----------+
| 13 | 150.23 | 5.88 | USD |
| 14 | 41.23 | 4.10 | EUR |
+-----+--------------+------------+----------+
А теперь предположим, что есть класс заказа с такими свойствами:
class Order {
public Money $total_price;
public Money $commission;
}
При этом класс Money, который является объектом-значением, будет выглядеть вот так:
class Money {
public float $amount;
public string $currency;
}
Видно, что в обоих случаях значение свойства $currency класса Money должно тянуться из одного и того же поля. Значит, для него нельзя просто создать единый файл маппинга, а необходимо под каждое свойство реализовывать своё решение. Что необходимо прописать и как указать это доктрине?