From e40755598fb749f1d5dd63fa5bb55a2940bb0657 Mon Sep 17 00:00:00 2001 From: "zhang.pengcheng" Date: Tue, 3 Jun 2025 10:51:52 +0900 Subject: [PATCH] =?UTF-8?q?model=E3=82=92=E4=BD=9C=E6=88=90=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/todoapp/model/RecipeStuffs.java | 74 +++++++++++++ .../com/example/todoapp/model/Recipes.java | 53 ++++++++++ .../com/example/todoapp/model/Stocks.java | 100 ++++++++++++++++++ .../com/example/todoapp/model/Stuffs.java | 59 +++++++++++ .../com/example/todoapp/model/ToBuys.java | 81 ++++++++++++++ 5 files changed, 367 insertions(+) create mode 100644 backend/src/main/java/com/example/todoapp/model/RecipeStuffs.java create mode 100644 backend/src/main/java/com/example/todoapp/model/Recipes.java create mode 100644 backend/src/main/java/com/example/todoapp/model/Stocks.java create mode 100644 backend/src/main/java/com/example/todoapp/model/Stuffs.java create mode 100644 backend/src/main/java/com/example/todoapp/model/ToBuys.java diff --git a/backend/src/main/java/com/example/todoapp/model/RecipeStuffs.java b/backend/src/main/java/com/example/todoapp/model/RecipeStuffs.java new file mode 100644 index 0000000..fc94cd5 --- /dev/null +++ b/backend/src/main/java/com/example/todoapp/model/RecipeStuffs.java @@ -0,0 +1,74 @@ +//-------------------------------- +// RecipiesStuffs.java +// +// 分類:社員管理システムV2・ビジネスロジック層 +// +// 更新履歴:2025/06/02 新規作成 +// Copyright(c) 2025 IVIS All rights reserved. +//-------------------------------------------- + +package com.example.todoapp.model; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 料理に必要な材料 + */ +@Data +@NoArgsConstructor +@Entity +@Table(name = "recipe_stuffs") +public class RecipeStuffs { + + + /** + * 料理に必要リストの一意識別子 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int recipe_stuffs_id ; + + /** + * 料理の一意識別子 FK + */ + @NotBlank + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn( + name = "recipe_id", + referencedColumnName = "recipe_id", + nullable = false + ) + private Recipes recipes; + + + /** + * 材料の一意識別子 FK + */ + @NotBlank + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn( + name = "stuff_id", + referencedColumnName = "stuff_id", + nullable = false + ) + private Stuffs stuffs; + + /** + * 材料の数量 + */ + @NotBlank + @Column(nullable = false) + private int amount; + +} diff --git a/backend/src/main/java/com/example/todoapp/model/Recipes.java b/backend/src/main/java/com/example/todoapp/model/Recipes.java new file mode 100644 index 0000000..76de887 --- /dev/null +++ b/backend/src/main/java/com/example/todoapp/model/Recipes.java @@ -0,0 +1,53 @@ +//-------------------------------- +// Recipes.java +// +// 分類:社員管理システムV2・ビジネスロジック層 +// +// 更新履歴:2025/06/02 新規作成 +// Copyright(c) 2025 IVIS All rights reserved. +//-------------------------------------------- + +package com.example.todoapp.model; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * カテゴリエンティティクラス + * このクラスはタスクのカテゴリ情報を表します。 + * カテゴリは名前、色、所有ユーザーなどの情報を持ちます。 + */ + +@Data +@NoArgsConstructor +@Entity +@Table(name = "recipes") +public class Recipes { + /** + * カテゴリID(主キー) + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int recipe_id ; + + /** + * カテゴリ名 + */ + @NotBlank + @Column(unique = true, length = 255, nullable = false) + private String recipie_name; + + /** + * カテゴリ + */ + @Column (columnDefinition = "TEXT") + private String summary; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/example/todoapp/model/Stocks.java b/backend/src/main/java/com/example/todoapp/model/Stocks.java new file mode 100644 index 0000000..660ab87 --- /dev/null +++ b/backend/src/main/java/com/example/todoapp/model/Stocks.java @@ -0,0 +1,100 @@ +//-------------------------------- +// Stocks.java +// +// 分類:社員管理システムV2・ビジネスロジック層 +// +// 更新履歴:2025/06/03 新規作成 +// Copyright(c) 2025 IVIS All rights reserved. +//-------------------------------------------- + +package com.example.todoapp.model; + +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.NoArgsConstructor; + + +/** + * 在庫にある食材 + */ + +@Data +@NoArgsConstructor +@Entity +@Table(name = "stocks") +public class Stocks { + /** + * 在庫リストの一意識別子 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int stock_id ; + + + /** + * 商品テーブル参照用の外部キー + */ + @NotBlank + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn( + name = "stuff_id", + referencedColumnName = "stuff_id", + nullable = false + ) + private Stuffs stuffs; + + + /** + * ユーザーテーブル参照用の外部キー + */ + @NotBlank + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn( + name = "user_id", + referencedColumnName = "id", + nullable = false + ) + private User user_id; + + /** + * 在庫数量(デフォルト値: 1) + */ + @Column(nullable = false) + private int amount = 1; + + /** + * シングルの値段(デフォルト値: 0) + */ + @Column(nullable = false) + private int price = 0; + + /** + * 購入日 + */ + @Column(nullable = false) + private LocalDate buy_date; + + /** + * 最後の操作時間 + */ + @Column(nullable = false) + private LocalDate last_update; + + /** + * 賞味期限 + */ + @Column(nullable = false) + private LocalDate exp_date; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/example/todoapp/model/Stuffs.java b/backend/src/main/java/com/example/todoapp/model/Stuffs.java new file mode 100644 index 0000000..b0e7939 --- /dev/null +++ b/backend/src/main/java/com/example/todoapp/model/Stuffs.java @@ -0,0 +1,59 @@ +//-------------------------------- +// Stuffs.java +// +// 分類:社員管理システムV2・ビジネスロジック層 +// +// 更新履歴:2025/06/02 新規作成 +// Copyright(c) 2025 IVIS All rights reserved. +//-------------------------------------------- + +package com.example.todoapp.model; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * カテゴリエンティティクラス + * このクラスはタスクのカテゴリ情報を表します。 + * カテゴリは名前、色、所有ユーザーなどの情報を持ちます。 + */ +@Data +@NoArgsConstructor +@Entity +@Table(name = "stuffs") + public class Stuffs { + + /** + * カテゴリID(主キー) + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int stuff_id ; + + /** + * カテゴリ名 + */ + @NotBlank + @Column(unique = true, length = 255, nullable = false) + private String stuff_name; + + /** + * カテゴリ + */ + @Column (columnDefinition = "TEXT") + private String summary; + + /** + * カテゴリ + */ + @NotBlank + @Column(nullable = false, length = 225) + private String category = "その他" ; + } \ No newline at end of file diff --git a/backend/src/main/java/com/example/todoapp/model/ToBuys.java b/backend/src/main/java/com/example/todoapp/model/ToBuys.java new file mode 100644 index 0000000..25bb797 --- /dev/null +++ b/backend/src/main/java/com/example/todoapp/model/ToBuys.java @@ -0,0 +1,81 @@ +//-------------------------------- +// ToBuys.java +// +// 分類:社員管理システムV2・ビジネスロジック層 +// +// 更新履歴:2025/06/03 新規作成 +// Copyright(c) 2025 IVIS All rights reserved. +//-------------------------------------------- + +package com.example.todoapp.model; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * ユーザーの買うものリスト + */ + +@Data +@NoArgsConstructor +@Entity +@Table(name = "to_buys") +public class ToBuys { + + /** + * 購入項目の一意識別子 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int tobuy_id ; + + /** + * 材料の一意識別子 FK + */ + @NotBlank + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn( + name = "stuff_id", + referencedColumnName = "stuff_id", + nullable = false + ) + private Stuffs stuffs; + + /** + * ユーザーテーブル参照用の外部キー + */ + @NotBlank + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn( + name = "user_id", + referencedColumnName = "id", + nullable = false + ) + private User user_id; + + /** + * 購入する数量 + */ + @NotBlank + @Column(nullable = false) + private int amount = 1; + + /** + * 購入するお店 + */ + @NotBlank + @Column(nullable = false) + private String store; + +} +