diff --git a/src/databases/config_databases_sqlite.v b/src/databases/config_databases_sqlite.v new file mode 100644 index 0000000..df58d89 --- /dev/null +++ b/src/databases/config_databases_sqlite.v @@ -0,0 +1,8 @@ +module databases + +import db.sqlite // can change to 'db.mysql', 'db.pg' + +pub fn create_db_connection() !sqlite.DB { + mut db := sqlite.connect('app.db')! + return db +} diff --git a/src/main.v b/src/main.v index 51901fd..cd17153 100644 --- a/src/main.v +++ b/src/main.v @@ -1,6 +1,7 @@ module main import veb +import databases pub struct Context { veb.Context @@ -15,6 +16,15 @@ pub fn (app &App) index(mut ctx Context) veb.Result { } fn main() { + mut db := databases.create_db_connection() or { panic(err) } + + sql db { + create table User + create table Plane + create table Ticket + } or { panic('error on create table: ${err}') } + + db.close() or { panic(err) } mut app := &App{} app.handle_static('static', false)! diff --git a/src/plane_entities.v b/src/plane_entities.v index c618c7e..6380aa2 100644 --- a/src/plane_entities.v +++ b/src/plane_entities.v @@ -4,11 +4,13 @@ module main pub struct Plane { mut: id int @[primary; sql: serial] - from string @[nonull; sql_type: 'TEXT'] - to string @[nonull; sql_type: 'TEXT'] - seats string @[nonull; sql_type: 'TEXT'] - seats_available int @[nonull; sql_type: 'INT'] - time string @[nonull; sql_type: 'TEXT'] - status string @[nonull; sql_type: 'TEXT'] - tickets []Ticket @[foreign_key: 'plane_id'; on_delete: 'cascade'; on_update: 'cascade'] + from string @[sql_type: 'TEXT'] + to string @[sql_type: 'TEXT'] + seats string @[sql_type: 'TEXT'] + seats_available int @[sql_type: 'INT'] + time string @[sql_type: 'TEXT'] + date string @[sql_type: 'TEXT'] + price int @[sql_type: 'INT'] + status string @[sql_type: 'TEXT'] + tickets []Ticket @[fkey: 'plane_id'] } diff --git a/src/ticket_entities.v b/src/ticket_entities.v index 10ecbfb..49cb7f9 100644 --- a/src/ticket_entities.v +++ b/src/ticket_entities.v @@ -6,4 +6,5 @@ mut: id int @[primary; sql: serial] user_id int plane_id int + status string @[sql_type: 'TEXT'] } diff --git a/src/user_entities.v b/src/user_entities.v index be1ebb3..2d9795d 100644 --- a/src/user_entities.v +++ b/src/user_entities.v @@ -4,7 +4,7 @@ module main pub struct User { mut: id int @[primary; sql: serial] - username string @[nonull; sql_type: 'TEXT'; unique] - password string @[nonull; sql_type: 'TEXT'] - tickets []Ticket @[foreign_key: 'user_id'] + username string @[sql_type: 'TEXT'; unique] + password string @[sql_type: 'TEXT'] + tickets []Ticket @[fkey: 'user_id'] }