Changes
9 changed files (+174/-0)
-
-
@@ -0,0 +1,17 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.type.v1; message Date { // 1~9999, 0 (未指定) の場合は年を指定しない月日。 uint32 year = 1; // 1~12, 0 (未指定) の場合は月を指定しない日。 uint32 month = 2; // 1~31 uint32 day = 3; }
-
-
-
@@ -0,0 +1,12 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; // 休日。なお、ここでいう「休日」とは労働基準法における定義であり、 // "国民の祝日に関する法律" で定義されている「休日」とはなんら // 関係がない。 "day off" は包括的な "休み" だが、他にいい表現が // なかったためシステム上の単語として採用している。 message DayOff {}
-
-
-
@@ -0,0 +1,17 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; import "yamori/type/v1/date.proto"; // 時間単位年次有給休暇。 message HourlyPaidLeave { // この有給休暇が付与された年月日。 yamori.type.v1.Date provided_at = 1; // 利用した時間。 (1~24) uint32 hours = 2; }
-
-
-
@@ -0,0 +1,24 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; import "yamori/work_record/v1/leave_id.proto"; // 休暇や休業。英語としては果てしなく微妙だが、法令の英語表記及び // 一般的な英語の言い回しで「休日」と「休暇 (休業) 」を区別しないため // 労働基準法で用いられている "paid leave" から "leave" だけを抜き // 出して利用している。通常の会話だと "parental leave" のように前に // 理由をつけることが殆どのため、 "leave" 単体だと (特に会社の // コンテキストだと) 非常に伝わりづらい。 message Leave { LeaveID id = 1; // 有給休暇の出勤率計算を行う際に、この休暇・休業を行った日を出勤した // としてみなすかどうか。 bool is_worker_deemed_to_be_worked = 2; string display_name = 3; }
-
-
-
@@ -0,0 +1,12 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; // 休暇や休業を識別するための ID 。 // `lv-` というプリフィクスを持つ。 message LeaveID { string value = 1; }
-
-
-
@@ -0,0 +1,14 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; import "yamori/type/v1/date.proto"; // 年次有給休暇。 message PaidLeave { // この有給休暇が付与された年月日。 yamori.type.v1.Date provided_at = 1; }
-
-
-
@@ -0,0 +1,24 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; import "yamori/work_record/v1/hourly_paid_leave.proto"; import "yamori/work_record/v1/paid_leave.proto"; // 一日の所定労働時間を下回る休暇。 message TimeOff { oneof kind { // 年次有給休暇を半日に分けて取得する場合の一単位。 // 法令上、時間単位年休制度を利用せずに年次有給休暇を分割することは // 認められていないが、時間単位年休制度が設けられる前から黙認され // 続けている運用。厚生労働省が公式に容認してしまっているため広く // 利用されている。 PaidLeave halved_paid_leave = 1; // 時間単位年休。 HourlyPaidLeave hourly_paid_leave = 2; } }
-
-
-
@@ -0,0 +1,16 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; import "yamori/work_record/v1/time_off.proto"; message WorkRecord { // 労働者が出勤したかどうか。 bool has_worker_worked = 1; // 利用した1日未満の休暇。 repeated TimeOff time_offs = 2; }
-
-
-
@@ -0,0 +1,38 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; import "yamori/type/v1/date.proto"; import "yamori/work_record/v1/day_off.proto"; import "yamori/work_record/v1/leave.proto"; import "yamori/work_record/v1/paid_leave.proto"; import "yamori/work_record/v1/work_record.proto"; message WorkingDay { yamori.type.v1.Date date = 1; // その日の労働状況。 oneof record { // 労働が行われた、もしくは予定されていた。 WorkRecord work_record = 2; // 休日。 DayOff day_off = 3; // 年次有給休暇を利用した。 PaidLeave paid_leave = 4; // 法定休暇・休業を利用した。 Leave legal_leave = 5; // 特別休暇を利用した。 Leave special_leave = 6; } // ユーザが残したメモ、記載事項。 // システムがこのフィールドを自動的にパースすることはない。 string note = 12; }
-