/
Puzzman
/
basic_programming
Обзор
Документация
Войти
/
Puzzman
/
basic_programming
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
sqlcpp_homework_6_01/classesDB.h
93 строки
2 KB
Puzzanis
initial commit
30 янв 2025, 16:08
30 янв 2025, 16:08
4b9507a
Код
Авторство
О чём код?
#pragma once #include <iostream> #include <string> #include <Wt/Dbo/Dbo.h> #include <Wt/Dbo/backend/Postgres.h> class Book; class Publisher { public: std::string name = {}; Wt::Dbo::collection<Wt::Dbo::ptr<Book>> books; template<class Action> void persist(Action& a) { Wt::Dbo::field(a, name, "name"); Wt::Dbo::hasMany(a, books, Wt::Dbo::ManyToOne, "publisher"); } }; class Stock; class Book { public: std::string title{}; Wt::Dbo::ptr<Publisher> publisher; Wt::Dbo::collection<Wt::Dbo::ptr<Stock>> stocks; template<class Action> void persist(Action& a) { Wt::Dbo::field(a, title, "title"); Wt::Dbo::belongsTo(a, publisher, "publisher"); Wt::Dbo::hasMany(a, stocks, Wt::Dbo::ManyToOne, "book"); } }; class Stock; class Shop { public: std::string name{}; Wt::Dbo::collection<Wt::Dbo::ptr<Stock>> stocks; template<class Action> void persist(Action& a) { Wt::Dbo::field(a, name, "name"); Wt::Dbo::hasMany(a, stocks, Wt::Dbo::ManyToMany, "shop"); } }; class Sale; class Stock { public: int count{0}; Wt::Dbo::ptr<Book> book; Wt::Dbo::ptr<Shop> shop; Wt::Dbo::collection<Wt::Dbo::ptr<Sale>> sales; template<class Action> void persist(Action& a) { Wt::Dbo::field(a, count, "count"); Wt::Dbo::belongsTo(a, book, "book"); Wt::Dbo::belongsTo(a, shop, "shop"); Wt::Dbo::hasMany(a, sales, Wt::Dbo::ManyToOne, "stock"); } }; class Sale { public: float price{0.0}; int count{ 0 }; std::string date_sale{}; Wt::Dbo::ptr<Stock> stock; template<class Action> void persist(Action& a) { Wt::Dbo::field(a, price, "price"); Wt::Dbo::field(a, date_sale, "date_sale"); Wt::Dbo::field(a, count, "count"); Wt::Dbo::belongsTo(a, stock, "stock"); } };