Added gender

This commit is contained in:
blaisadmin
2026-04-14 23:34:15 -04:00
parent 40900a0968
commit 43c32a5efc
8 changed files with 237 additions and 16 deletions
+20 -14
View File
@@ -1,5 +1,5 @@
import { db } from '../db/client.js';
import type { BirdRow, VetVisitRow, WeightRow } from '../types.js';
import type { BirdGender, BirdRow, VetVisitRow, WeightRow } from '../types.js';
const birdSelectFields = `
birds.id,
@@ -7,6 +7,7 @@ const birdSelectFields = `
birds.name,
birds.tag_id,
birds.species,
birds.gender,
birds.date_of_birth::text,
birds.gotcha_day::text,
birds.chart_color,
@@ -63,6 +64,7 @@ export const createBird = async ({
name,
tagId,
species,
gender,
dateOfBirth,
gotchaDay,
chartColor,
@@ -74,6 +76,7 @@ export const createBird = async ({
name: string;
tagId: string;
species: string;
gender: BirdGender;
dateOfBirth: string | null;
gotchaDay: string | null;
chartColor: string;
@@ -82,10 +85,10 @@ export const createBird = async ({
notifyOnGotchaDay: boolean;
}) => {
const result = await db.query<BirdRow>(
`INSERT INTO birds (workspace_id, name, tag_id, species, date_of_birth, gotcha_day, chart_color, photo_data_url, notify_on_dob, notify_on_gotcha_day)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
RETURNING id, workspace_id, name, tag_id, species, date_of_birth::text, gotcha_day::text, chart_color, photo_data_url, notify_on_dob, notify_on_gotcha_day, created_at, NULL::text AS latest_weight_grams, NULL::text AS latest_recorded_on`,
[workspaceId, name, tagId, species, dateOfBirth, gotchaDay, chartColor, photoDataUrl, notifyOnDob, notifyOnGotchaDay],
`INSERT INTO birds (workspace_id, name, tag_id, species, gender, date_of_birth, gotcha_day, chart_color, photo_data_url, notify_on_dob, notify_on_gotcha_day)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
RETURNING id, workspace_id, name, tag_id, species, gender, date_of_birth::text, gotcha_day::text, chart_color, photo_data_url, notify_on_dob, notify_on_gotcha_day, created_at, NULL::text AS latest_weight_grams, NULL::text AS latest_recorded_on`,
[workspaceId, name, tagId, species, gender, dateOfBirth, gotchaDay, chartColor, photoDataUrl, notifyOnDob, notifyOnGotchaDay],
);
return result.rows[0] ?? null;
@@ -97,6 +100,7 @@ export const updateBird = async ({
name,
tagId,
species,
gender,
dateOfBirth,
gotchaDay,
chartColor,
@@ -109,6 +113,7 @@ export const updateBird = async ({
name: string;
tagId: string;
species: string;
gender: BirdGender;
dateOfBirth: string | null;
gotchaDay: string | null;
chartColor: string;
@@ -121,15 +126,16 @@ export const updateBird = async ({
SET name = $2,
tag_id = $3,
species = $4,
date_of_birth = $5,
gotcha_day = $6,
chart_color = $7,
photo_data_url = $8,
notify_on_dob = $9,
notify_on_gotcha_day = $10
gender = $5,
date_of_birth = $6,
gotcha_day = $7,
chart_color = $8,
photo_data_url = $9,
notify_on_dob = $10,
notify_on_gotcha_day = $11
WHERE id = $1
AND workspace_id = $11
RETURNING id, workspace_id, name, tag_id, species, date_of_birth::text, gotcha_day::text, chart_color, photo_data_url, notify_on_dob, notify_on_gotcha_day, created_at,
AND workspace_id = $12
RETURNING id, workspace_id, name, tag_id, species, gender, date_of_birth::text, gotcha_day::text, chart_color, photo_data_url, notify_on_dob, notify_on_gotcha_day, created_at,
(
SELECT weight_grams::text
FROM weight_records
@@ -144,7 +150,7 @@ export const updateBird = async ({
ORDER BY recorded_on DESC
LIMIT 1
) AS latest_recorded_on`,
[birdId, name, tagId, species, dateOfBirth, gotchaDay, chartColor, photoDataUrl, notifyOnDob, notifyOnGotchaDay, workspaceId],
[birdId, name, tagId, species, gender, dateOfBirth, gotchaDay, chartColor, photoDataUrl, notifyOnDob, notifyOnGotchaDay, workspaceId],
);
return result.rows[0] ?? null;