2727// ===================================================================
2828
2929struct user {
30- using id = ds_mysql::column_field<struct id_tag , uint32_t >;
31- using username = ds_mysql::column_field<struct username_tag , ds_mysql::varchar_field<64 >>;
32- using email = ds_mysql::column_field<struct email_tag , ds_mysql::varchar_field<255 >>;
33- using is_active = ds_mysql::column_field<struct is_active_tag , bool >;
34- using created_at = ds_mysql::column_field<struct created_at_tag , ds_mysql::sql_datetime>;
30+ struct id_tag {};
31+ struct username_tag {};
32+ struct email_tag {};
33+ struct is_active_tag {};
34+ struct created_at_tag {};
35+
36+ using id = ds_mysql::column_field<id_tag, uint32_t >;
37+ using username = ds_mysql::column_field<username_tag, ds_mysql::varchar_field<64 >>;
38+ using email = ds_mysql::column_field<email_tag, ds_mysql::varchar_field<255 >>;
39+ using is_active = ds_mysql::column_field<is_active_tag, bool >;
40+ using created_at = ds_mysql::column_field<created_at_tag, ds_mysql::sql_datetime>;
3541
3642 id id_;
3743 username username_;
@@ -40,22 +46,17 @@ struct user {
4046 created_at created_at_;
4147};
4248
43- template <>
44- struct ds_mysql ::table_name_for<user> {
45- static constexpr ds_mysql::table_name value () noexcept { return ds_mysql::table_name{" user" }; }
46- };
47-
4849// ===================================================================
4950// Define an 'order_row' table with a numeric precision override
5051// ===================================================================
5152
5253struct order_row {
53- using id = ds_mysql::column_field<struct order_id_tag , uint32_t >;
54- using user_id = ds_mysql::column_field<struct user_id_tag , uint32_t >;
55- using amount = ds_mysql::column_field<struct amount_tag , double >;
56- using fee = ds_mysql::column_field<struct fee_tag , std::optional<double >>;
57- using status = ds_mysql::column_field<struct status_tag , ds_mysql::varchar_field<32 >>;
58- using created_at = ds_mysql::column_field<struct order_created_at_tag , ds_mysql::sql_datetime>;
54+ struct order_id_tag {}; using id = ds_mysql::column_field<order_id_tag, uint32_t >;
55+ struct user_id_tag {}; using user_id = ds_mysql::column_field<user_id_tag, uint32_t >;
56+ struct amount_tag {}; using amount = ds_mysql::column_field<amount_tag, double >;
57+ struct fee_tag {}; using fee = ds_mysql::column_field<fee_tag, std::optional<double >>;
58+ struct status_tag {}; using status = ds_mysql::column_field<status_tag, ds_mysql::varchar_field<32 >>;
59+ struct order_created_at_tag {}; using created_at = ds_mysql::column_field<order_created_at_tag, ds_mysql::sql_datetime>;
5960
6061 id id_;
6162 user_id user_id_;
@@ -65,11 +66,6 @@ struct order_row {
6566 created_at created_at_;
6667};
6768
68- template <>
69- struct ds_mysql ::table_name_for<order_row> {
70- static constexpr ds_mysql::table_name value () noexcept { return ds_mysql::table_name{" order_row" }; }
71- };
72-
7369// Override 'amount' (index 2) to use DECIMAL(18,6) instead of DOUBLE
7470template <>
7571struct ds_mysql ::field_schema<order_row, 2 > {
0 commit comments