-- Eggtracker schema
-- This file runs automatically on first container startup only.
-- To re-run it, remove the mysql_data volume: docker compose down -v

CREATE DATABASE IF NOT EXISTS eggtracker
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

USE eggtracker;

-- ── Egg collections ───────────────────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS egg_collections (
    id          INT UNSIGNED    NOT NULL AUTO_INCREMENT,
    date        DATE            NOT NULL,
    eggs        INT UNSIGNED    NOT NULL,
    notes       TEXT,
    created_at  DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    UNIQUE KEY uq_date (date)
) ENGINE=InnoDB;

-- ── Flock history ─────────────────────────────────────────────────────────────
-- Each row records a change in flock size. The count in effect for any given
-- date is the most recent row with date <= that date.
CREATE TABLE IF NOT EXISTS flock_history (
    id             INT UNSIGNED    NOT NULL AUTO_INCREMENT,
    date           DATE            NOT NULL,
    chicken_count  INT UNSIGNED    NOT NULL,
    notes          TEXT,
    created_at     DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    INDEX idx_date (date)
) ENGINE=InnoDB;

-- ── Feed purchases ────────────────────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS feed_purchases (
    id             INT UNSIGNED      NOT NULL AUTO_INCREMENT,
    date           DATE              NOT NULL,
    bags           DECIMAL(5, 2)     NOT NULL,   -- decimal for partial bags
    price_per_bag  DECIMAL(10, 2)    NOT NULL,
    notes          TEXT,
    created_at     DATETIME          NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    INDEX idx_date (date)
) ENGINE=InnoDB;
