date filtering, and squashed migrations

This commit is contained in:
bronku 2025-03-31 01:13:33 +02:00
parent 7b21ee837d
commit 67807992bc
12 changed files with 128 additions and 180 deletions

2
.gitignore vendored
View file

@ -28,4 +28,4 @@ go.work.sum
tmp tmp
tmp/main tmp/main
foo.db foo.db.bak

View file

@ -12,14 +12,26 @@ import (
func (h *Server) orders(r *http.Request) (any, int, error) { func (h *Server) orders(r *http.Request) (any, int, error) {
//r.URL.Query().Get() //r.URL.Query().Get()
data, err := h.s.GetTopOrders(time.Now(), time.Now().Add(time.Hour*24)) orders, err := h.s.GetTopOrders(time.Now(), time.Now().Add(time.Hour*24))
data := struct {
Today string
Orders []models.Order
}{Today: time.Now().Format("2006-01-02"), Orders: orders}
return data, http.StatusOK, err return data, http.StatusOK, err
} }
func (h *Server) ordersSearch(r *http.Request) (any, int, error) { func (h *Server) ordersSearch(r *http.Request) (any, int, error) {
q := r.URL.Query().Get("q") q := r.URL.Query().Get("q")
fmt.Println(q) from, err := time.Parse("2006-01-02", r.URL.Query().Get("from"))
data, err := h.s.GetFilteredOrder(q, time.Time{}, time.Time{}) if err != nil {
from = time.Time{}
}
to, err := time.Parse("2006-01-02", r.URL.Query().Get("to"))
if err != nil {
to = time.Time{}
}
fmt.Println(from, to)
data, err := h.s.GetFilteredOrder(q, from, to)
return data, http.StatusOK, err return data, http.StatusOK, err
} }

View file

@ -4,25 +4,22 @@
{{end}} {{end}}
{{define "main"}} {{define "main"}}
<main> <main>
<div class="search-container"> <form class="search-container" hx-get="/orders/search" hx-target="#results-table", hx-trigger="keyup delay:500ms, change">
<input <input type="search" name="q" placeholder="Search orders...">
type="search"
name="q" <label for="from">form</label>
hx-get="/orders/search" <input type="date" value="{{.Today}}" id="from" name="from">
hx-trigger="keyup changed delay:500ms" <label for="from">to</label>
hx-target="#results-table" <input type="date" value="{{.Today}}" id="to" name="to">
hx-push-url="true"
placeholder="Search orders..."
>
<div class="htmx-indicator"> <div class="htmx-indicator">
Searching... Searching...
</div> </div>
<div id="results-table"> <div id="results-table">
{{template "orders-table" .}} {{template "orders-table" .Orders}}
</div>
</div> </div>
</form>
</main> </main>
{{end}} {{end}}
@ -35,7 +32,6 @@
<th>Phone</th> <th>Phone</th>
<th>Location</th> <th>Location</th>
<th>Date</th> <th>Date</th>
<th>Accepted</th>
<th>Status</th> <th>Status</th>
<th>Total</th> <th>Total</th>
</tr> </tr>
@ -47,7 +43,6 @@
<th>{{.Phone}}</th> <th>{{.Phone}}</th>
<th>{{.Location}}</th> <th>{{.Location}}</th>
<th>{{.Date.Format "2006-01-02"}}</th> <th>{{.Date.Format "2006-01-02"}}</th>
<th>{{.Accepted.Format "2006-01-02"}}</th>
<th>{{.Status}}</th> <th>{{.Status}}</th>
<th>{{.Total}}</th> <th>{{.Total}}</th>
</tr> </tr>

View file

@ -1,10 +1,14 @@
create table cake ( CREATE TABLE cake
(
id integer primary key autoincrement, id integer primary key autoincrement,
name text not null unique, name text not null unique,
price integer not null price integer not null,
category text,
availability text
); );
create table customer_order ( CREATE TABLE customer_order
(
id integer primary key autoincrement, id integer primary key autoincrement,
name text, name text,
surname text, surname text,
@ -16,11 +20,93 @@ create table customer_order (
paid integer paid integer
); );
create table ordered_cake ( CREATE TABLE ordered_cake
(
customer_order integer references customer_order (id) not null, customer_order integer references customer_order (id) not null,
cake integer references cake (id) not null, cake integer references cake (id) not null,
amount integer not null, amount integer not null,
primary key (customer_order, cake) primary key (customer_order, cake)
); );
pragma user_version = 1; CREATE TABLE user
(
login text primary key,
password text,
role text,
salt text
);
CREATE TABLE session
(
token text primary key,
user text,
expiration text
);
create
virtual table order_fts using fts5 (
id,
name,
surname,
phone,
location,
order_date,
delivery_date,
status,
paid,
content = 'customer_order'
);
create trigger order_fts_insert
after insert
on customer_order
begin
insert into order_fts (id,
name,
surname,
phone,
location,
order_date,
delivery_date,
status,
paid)
values (new.id,
new.name,
new.surname,
new.phone,
new.location,
new.order_date,
new.delivery_date,
new.status,
new.paid);
end;
create trigger order_fts_delete
after delete
on customer_order
begin
delete
from order_fts
where id = old.id;
end;
create trigger order_fts_update
after
update
on customer_order
begin
update customer_order
set id = new.id,
name = new.name,
surname = new.surname,
phone = new.phone,
location = new.location,
order_date = new.order_date,
delivery_date = new.delivery_date,
status = new.status,
paid = new.paid
where id = old.id;
end;
pragma
user_version = 1;

View file

@ -1,8 +0,0 @@
create table session (
token text primary key,
user_name text,
created text,
lastAccess text
);
pragma user_version = 2;

View file

@ -1,7 +0,0 @@
alter table cake
add column category text;
alter table cake
add column availability text;
pragma user_version = 3;

View file

@ -1,9 +0,0 @@
update cake
set
category = "common";
update cake
set
availability = "avaiable";
pragma user_version = 4;

View file

@ -1,5 +0,0 @@
update cake
set
availability = "available";
pragma user_version = 5;

View file

@ -1,9 +0,0 @@
drop table session;
create table session (
token text pirmary key,
user text,
expiration text
);
pragma user_version = 6;

View file

@ -1,11 +0,0 @@
create table user (login text primary key, password text, role text);
drop table session;
create table session (
token text primary key,
user text,
expiration text
);
pragma user_version = 7;

View file

@ -1,4 +0,0 @@
alter table user
add column salt text;
pragma user_version = 8;

View file

@ -1,92 +0,0 @@
create virtual table order_fts using fts5 (
id,
name,
surname,
phone,
location,
status,
order_date,
delivery_date,
paid,
content = 'customer_order'
);
insert into
order_fts (
id,
name,
surname,
phone,
location,
status,
order_date,
delivery_date,
paid
)
select
id,
name,
surname,
phone,
location,
status,
order_date,
delivery_date,
paid
from
customer_order;
create trigger order_fts_insert after insert on customer_order begin
insert into
order_fts (
id,
name,
surname,
phone,
location,
status,
order_date,
delivery_date,
paid
)
values
(
new.id,
new.name,
new.surname,
new.phone,
new.location,
new.status,
new.order_date,
new.delivery_date,
new.paid
);
end;
create trigger order_fts_delete after delete on customer_order begin
delete from order_fts
where
id = old.id;
end;
create trigger order_fts_update after
update on customer_order begin
update customer_order
set
id = new.id,
name = new.name,
surname = new.surname,
phone = new.phone,
location = new.location,
status = new.status,
order_date = new.order_date,
delivery_date = new.delivery_date,
paid = new.paid
where
id = old.id;
end;
pragma user_version = 9;