This commit is contained in:
2025-03-05 13:21:07 +05:30
parent de64937240
commit 2fa58d9937
5 changed files with 31 additions and 10 deletions

View File

@@ -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
}

View File

@@ -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)!

View File

@@ -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']
}

View File

@@ -6,4 +6,5 @@ mut:
id int @[primary; sql: serial]
user_id int
plane_id int
status string @[sql_type: 'TEXT']
}

View File

@@ -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']
}