-
Notifications
You must be signed in to change notification settings - Fork 0
/
models.go
41 lines (34 loc) · 922 Bytes
/
models.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main
import (
"time"
)
var Schema = `
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
filename TEXT NOT NULL UNIQUE,
date DATETIME NOT NULL,
process_date DATETIME NULL
);
CREATE INDEX IF NOT EXISTS files_date ON files(date);
CREATE TABLE IF NOT EXISTS log (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
command TEXT NOT NULL,
filename TEXT NOT NULL,
popularity INTEGER NOT NULL DEFAULT 1
);
CREATE INDEX IF NOT EXISTS log_command ON log(command);
CREATE INDEX IF NOT EXISTS log_popularity ON log(popularity);
CREATE INDEX IF NOT EXISTS log_cp ON log(command,popularity);
`
type File struct {
Id int `db:"id"`
Filename string `db:"filename"`
Date *time.Time `db:"date"`
ProcessDate *time.Time `db:"process_date"`
}
type Log struct {
Id int `db:"id"`
Command string `db:"command"`
Filename string `db:"filename"`
Popularity int `db:"popularity"`
}