Files
home_hub/backend/app/schemas/notes.py
T
gilles fdeb747f38 feat: Phase 4 — module Notes complet
Backend :
- schemas/notes.py : NoteCreate/Update/Response + AttachmentResponse
- api/notes.py : CRUD + FTS français (plainto_tsquery) + filtres rapides
  (has_photo/audio/gps/tag/category) + pièces jointes (image/audio)
- main.py : enregistrement /api/notes

Frontend :
- api/notes.ts : fetchNotes/create/update/delete + add/deleteAttachment
- NoteForm.tsx : titre, contenu, catégorie, tags CSV, GPS
- NotesPage.tsx : liste mobile (chronologique) + grille laptop, FAB +,
  enregistrement audio inline (MediaRecorder), upload photo, filtres rapides

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 06:49:46 +02:00

46 lines
1.1 KiB
Python

import uuid
from datetime import datetime
from decimal import Decimal
from pydantic import BaseModel, ConfigDict
class AttachmentResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: uuid.UUID
file_path: str | None
thumbnail_path: str | None
file_type: str | None
original_name: str | None
created_at: datetime
class NoteCreate(BaseModel):
title: str | None = None
content: str
category: str | None = None
tags: list[str] = []
gps_lat: Decimal | None = None
gps_lon: Decimal | None = None
class NoteUpdate(BaseModel):
title: str | None = None
content: str | None = None
category: str | None = None
tags: list[str] | None = None
gps_lat: Decimal | None = None
gps_lon: Decimal | None = None
class NoteResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: uuid.UUID
title: str | None
content: str
category: str | None
tags: list[str]
gps_lat: Decimal | None
gps_lon: Decimal | None
created_at: datetime
attachments: list[AttachmentResponse]