This commit is contained in:
Kazimierz Ciołek
2026-07-05 11:10:16 +02:00
commit 4828573cae
54 changed files with 11313 additions and 0 deletions

7
src-tauri/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
# Generated by Cargo
# will have compiled files and executables
/target/
# Generated by Tauri
# will have schema files for capabilities auto-completion
/gen/schemas

5888
src-tauri/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

26
src-tauri/Cargo.toml Normal file
View File

@@ -0,0 +1,26 @@
[package]
name = "sloneczko-menager"
version = "0.1.0"
description = "A Tauri App"
authors = ["you"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "sloneczko_menager_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tauri-plugin-sql = { version = "2.4.0", features = ["sqlite"] }

3
src-tauri/build.rs Normal file
View File

@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}

View File

@@ -0,0 +1,12 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Capability for the main window",
"windows": ["main"],
"permissions": [
"core:default",
"opener:default",
"sql:default",
"sql:allow-execute"
]
}

BIN
src-tauri/icons/128x128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
src-tauri/icons/32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src-tauri/icons/icon.icns Normal file

Binary file not shown.

BIN
src-tauri/icons/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
src-tauri/icons/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

109
src-tauri/src/lib.rs Normal file
View File

@@ -0,0 +1,109 @@
use tauri_plugin_sql::{Migration, MigrationKind};
fn migrations() -> Vec<Migration> {
vec![Migration {
version: 1,
description: "create_cabins_and_reservations",
sql: "
CREATE TABLE cabins (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
capacity INTEGER,
sort_order INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE reservations (
id INTEGER PRIMARY KEY,
cabin_id INTEGER NOT NULL REFERENCES cabins(id) ON DELETE CASCADE,
guest_name TEXT NOT NULL,
address TEXT,
phone TEXT,
num_guests INTEGER,
deposit_amount REAL,
deposit_paid INTEGER NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'confirmed',
arrival TEXT NOT NULL,
departure TEXT NOT NULL,
notes TEXT,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
CHECK (departure > arrival)
);
CREATE INDEX idx_reservations_cabin ON reservations (cabin_id, arrival, departure);
",
kind: MigrationKind::Up,
},
Migration {
version: 2,
description: "add_pricing_meters_settings_invoices",
sql: "
ALTER TABLE reservations ADD COLUMN price_per_night REAL;
ALTER TABLE reservations ADD COLUMN meter_start REAL;
ALTER TABLE reservations ADD COLUMN meter_end REAL;
CREATE TABLE settings (
id INTEGER PRIMARY KEY CHECK (id = 1),
company_name TEXT NOT NULL DEFAULT '',
first_name TEXT NOT NULL DEFAULT '',
last_name TEXT NOT NULL DEFAULT '',
address TEXT NOT NULL DEFAULT '',
nip TEXT,
bank_account TEXT NOT NULL DEFAULT '',
bank_name TEXT NOT NULL DEFAULT '',
issue_place TEXT NOT NULL DEFAULT '',
default_pkwiu TEXT NOT NULL DEFAULT '55.20',
default_vat_rate REAL NOT NULL DEFAULT 8,
energy_price REAL
);
INSERT INTO settings (id) VALUES (1);
CREATE TABLE invoices (
id INTEGER PRIMARY KEY,
invoice_number TEXT NOT NULL UNIQUE,
reservation_id INTEGER REFERENCES reservations(id) ON DELETE SET NULL,
issue_date TEXT NOT NULL,
sale_date TEXT NOT NULL,
payment_method TEXT NOT NULL DEFAULT 'CASH',
payment_card REAL,
payment_cash REAL,
payment_due TEXT NOT NULL,
buyer_name TEXT NOT NULL,
buyer_address TEXT,
buyer_nip TEXT,
seller_company TEXT NOT NULL DEFAULT '',
seller_person TEXT NOT NULL DEFAULT '',
seller_address TEXT NOT NULL DEFAULT '',
seller_nip TEXT,
seller_bank_account TEXT NOT NULL DEFAULT '',
seller_bank_name TEXT NOT NULL DEFAULT '',
issue_place TEXT NOT NULL DEFAULT '',
created_at TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE INDEX idx_invoices_reservation ON invoices (reservation_id);
CREATE TABLE invoice_items (
id INTEGER PRIMARY KEY,
invoice_id INTEGER NOT NULL REFERENCES invoices(id) ON DELETE CASCADE,
name TEXT NOT NULL,
pkwiu TEXT,
quantity REAL NOT NULL,
unit_price REAL NOT NULL,
vat_rate REAL NOT NULL,
position INTEGER NOT NULL DEFAULT 0
);
CREATE INDEX idx_invoice_items_invoice ON invoice_items (invoice_id);
",
kind: MigrationKind::Up,
}]
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(
tauri_plugin_sql::Builder::default()
.add_migrations("sqlite:sloneczko.db", migrations())
.build(),
)
.plugin(tauri_plugin_opener::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}

6
src-tauri/src/main.rs Normal file
View File

@@ -0,0 +1,6 @@
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
fn main() {
sloneczko_menager_lib::run()
}

35
src-tauri/tauri.conf.json Normal file
View File

@@ -0,0 +1,35 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "sloneczko-menager",
"version": "0.1.0",
"identifier": "pl.kciolek",
"build": {
"beforeDevCommand": "npm run dev",
"devUrl": "http://localhost:1420",
"beforeBuildCommand": "npm run build",
"frontendDist": "../build"
},
"app": {
"windows": [
{
"title": "sloneczko-menager",
"width": 800,
"height": 600
}
],
"security": {
"csp": null
}
},
"bundle": {
"active": true,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
}