adds initial structs and get routes for persons, labels, artists, albums, and tracks

This commit is contained in:
Sundog
2024-01-03 12:13:18 -05:00
parent 0535079c1c
commit 5c1b951763
6 changed files with 1502 additions and 26 deletions

View File

@ -24,7 +24,6 @@ CREATE TABLE Persons (
deleted_at INTEGER, /* timestamp */
deleted_by TEXT(36), /* UUIDv4 */
last_seen INTEGER, /* timestamp */
shipping_address TEXT, /* optional, should use \n between lines to keep localized format as needed */
CONSTRAINT Persons_PK PRIMARY KEY (id),
CONSTRAINT Persons_FK FOREIGN KEY (modified_by) REFERENCES Persons(id),
CONSTRAINT Persons_FK_1 FOREIGN KEY (deleted_by) REFERENCES Persons(id)
@ -37,6 +36,28 @@ CREATE INDEX Persons_is_blocked_IDX ON Persons (is_blocked);
CREATE INDEX Persons_deleted_at_IDX ON Persons (deleted_at);
```
# PersonShippingAddresses
The PersonShippingAddresses table will contain zero or more shipping addresses as used by a Person
``` sql
CREATE TABLE IF NOT EXISTS PersonShippingAddresses (
id TEXT(36), /* UUIDv4 */
person_id TEXT(36), /* UUIDv4 */
shipping_address TEXT, /* mandatory, should use \n between lines to keep localized format as needed */
is_primary INTEGER DEFAULT (0), /* bool, default false */
created_at INTEGER, /* timestamp */
modified_at INTEGER, /* timestamp */
modified_by TEXT(36), /* UUIDv4 */
deleted_at INTEGER, /* timestamp */
deleted_by TEXT(36), /* UUIDv4 */
CONSTRAINT PersonShippingAddresses_PK PRIMARY KEY (id),
CONSTRAINT PersonShippingAddresses_FK FOREIGN KEY (person_id) REFERENCES Persons(id),
CONSTRAINT PersonShippingAddresses_FK_1 FOREIGN KEY (modified_by) REFERENCES Persons(id),
CONSTRAINT PersonShippingAddresses_FK_2 FOREIGN KEY (deleted_by) REFERENCES Persons(id)
);
CREATE UNIQUE INDEX IF NOT EXISTS PersonShippingAddresses_is_primary_IDX ON PersonShippingAddresses (is_primary);
```
# PersonEmails Table
The PersonEmails table is a one-to-many lookup table relating a Person to zero or more email addresses
@ -191,6 +212,7 @@ The Artists table will contain Artists!
``` sql
CREATE TABLE Artists (
id TEXT(36),
label_id TEXT(36),
name TEXT,
bio TEXT,
website TEXT,