diff --git a/api/src/db/migrations/20260625090042_create-flashcards-table.ts b/api/src/db/migrations/20260625090042_create-flashcards-table.ts index ff85796..f2f6caf 100644 --- a/api/src/db/migrations/20260625090042_create-flashcards-table.ts +++ b/api/src/db/migrations/20260625090042_create-flashcards-table.ts @@ -5,9 +5,8 @@ export async function up(knex: Knex): Promise { table.increments("id").notNullable().primary() table.integer("flashcard_deck_id").notNullable() table.integer("creator_id").notNullable() - table.string("card_type", 255).notNullable() table.text("front").notNullable() - table.text("back").nullable() + table.text("back").notNullable() table .specificType("created_at", "TIMESTAMP WITH TIME ZONE") diff --git a/api/src/models/flashcard.ts b/api/src/models/flashcard.ts index ab82c71..010863c 100644 --- a/api/src/models/flashcard.ts +++ b/api/src/models/flashcard.ts @@ -35,16 +35,13 @@ export class Flashcard extends BaseModel< @NotNull declare creatorId: number - @Attribute(DataTypes.STRING(255)) - @NotNull - declare cardType: string - @Attribute(DataTypes.TEXT) @NotNull declare front: string @Attribute(DataTypes.TEXT) - declare back: string | null + @NotNull + declare back: string @Attribute(DataTypes.DATE(0)) @NotNull diff --git a/api/src/serializers/flashcards/index-serializer.ts b/api/src/serializers/flashcards/index-serializer.ts index b149c2e..8977416 100644 --- a/api/src/serializers/flashcards/index-serializer.ts +++ b/api/src/serializers/flashcards/index-serializer.ts @@ -5,7 +5,7 @@ import BaseSerializer from "@/serializers/base-serializer" export type FlashcardIndexView = Pick< Flashcard, - "id" | "flashcardDeckId" | "creatorId" | "cardType" | "front" | "back" | "createdAt" | "updatedAt" + "id" | "flashcardDeckId" | "creatorId" | "front" | "back" | "createdAt" | "updatedAt" > export class IndexSerializer extends BaseSerializer { @@ -14,7 +14,6 @@ export class IndexSerializer extends BaseSerializer { "id", "flashcardDeckId", "creatorId", - "cardType", "front", "back", "createdAt", diff --git a/api/src/serializers/flashcards/show-serializer.ts b/api/src/serializers/flashcards/show-serializer.ts index 7b73169..ed4b914 100644 --- a/api/src/serializers/flashcards/show-serializer.ts +++ b/api/src/serializers/flashcards/show-serializer.ts @@ -5,7 +5,7 @@ import BaseSerializer from "@/serializers/base-serializer" export type FlashcardShowView = Pick< Flashcard, - "id" | "flashcardDeckId" | "creatorId" | "cardType" | "front" | "back" | "createdAt" | "updatedAt" + "id" | "flashcardDeckId" | "creatorId" | "front" | "back" | "createdAt" | "updatedAt" > export class ShowSerializer extends BaseSerializer { @@ -14,7 +14,6 @@ export class ShowSerializer extends BaseSerializer { "id", "flashcardDeckId", "creatorId", - "cardType", "front", "back", "createdAt", diff --git a/api/src/services/flashcards/create-service.ts b/api/src/services/flashcards/create-service.ts index 836e243..f01d041 100644 --- a/api/src/services/flashcards/create-service.ts +++ b/api/src/services/flashcards/create-service.ts @@ -12,7 +12,7 @@ export class CreateService extends BaseService { } async perform(): Promise { - const { flashcardDeckId, creatorId, cardType, front, ...optionalAttributes } = this.attributes + const { flashcardDeckId, creatorId, front, back, ...optionalAttributes } = this.attributes if (isNil(flashcardDeckId)) { throw new Error("Flashcard deck is required") @@ -22,20 +22,20 @@ export class CreateService extends BaseService { throw new Error("Creator is required") } - if (isNil(cardType)) { - throw new Error("Card type is required") - } - if (isNil(front)) { throw new Error("Front is required") } + if (isNil(back)) { + throw new Error("Back is required") + } + return Flashcard.create({ ...optionalAttributes, flashcardDeckId, creatorId, - cardType, front, + back, }) } } diff --git a/web/src/api/flashcard-decks-api.ts b/web/src/api/flashcard-decks-api.ts index f9ef785..0fe5da7 100644 --- a/web/src/api/flashcard-decks-api.ts +++ b/web/src/api/flashcard-decks-api.ts @@ -1,5 +1,10 @@ import http from "@/api/http-client" -import { type FiltersOptions, type ModelOrder, type Policy, type WhereOptions } from "@/api/base-api" +import { + type FiltersOptions, + type ModelOrder, + type Policy, + type WhereOptions, +} from "@/api/base-api" export type FlashcardDeck = { id: number diff --git a/web/src/api/flashcards-api.ts b/web/src/api/flashcards-api.ts index acb8b38..e279c7a 100644 --- a/web/src/api/flashcards-api.ts +++ b/web/src/api/flashcards-api.ts @@ -1,18 +1,22 @@ import http from "@/api/http-client" -import { type FiltersOptions, type ModelOrder, type Policy, type WhereOptions } from "@/api/base-api" +import { + type FiltersOptions, + type ModelOrder, + type Policy, + type WhereOptions, +} from "@/api/base-api" export type Flashcard = { id: number flashcardDeckId: number creatorId: number - cardType: string front: string - back: string | null + back: string createdAt: string updatedAt: string } -export type FlashcardWhereOptions = WhereOptions +export type FlashcardWhereOptions = WhereOptions export type FlashcardFiltersOptions = FiltersOptions<{ search: string | string[]