Changes
11 changed files (+182/-0)
-
-
@@ -0,0 +1,8 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; message DayOffWriteInput {}
-
-
-
@@ -0,0 +1,11 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; message HourlyPaidLeaveWriteInput { // 利用した時間。 (1~24) uint32 hours = 1; }
-
-
-
@@ -0,0 +1,8 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.work_record.v1; message PaidLeaveWriteInput {}
-
-
-
@@ -0,0 +1,18 @@// 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_write_input.proto"; import "yamori/work_record/v1/paid_leave_write_input.proto"; // フィールド詳細に関する説明は TimeOff を参照。 message TimeOffWriteInput { oneof kind { PaidLeaveWriteInput halved_paid_leave = 1; HourlyPaidLeaveWriteInput hourly_paid_leave = 2; } }
-
-
-
@@ -0,0 +1,32 @@// 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_write_input.proto"; import "yamori/work_record/v1/leave_id.proto"; import "yamori/work_record/v1/paid_leave_write_input.proto"; import "yamori/work_record/v1/working_day_write_input.proto"; message WorkRecordBatchWriteInput { // 更新対象の日付。複数ある場合は対象の日付全てに同じ更新を行う。 repeated yamori.type.v1.Date dates = 1; oneof record { WorkingDayWriteInput working_day = 2; DayOffWriteInput day_off = 3; PaidLeaveWriteInput paid_leave = 4; LeaveID legal_leave_id = 5; LeaveID special_leave_id = 6; } // ユーザが残したメモ、記載事項。 string note = 12; }
-
-
-
@@ -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; message WorkRecordBatchWriteMask { // 更新する WorkRecordBatchWriteInput のフィールド番号。 // `dates` は処理に必ず必要なため未指定でも読まれる。 repeated int32 fields = 1; }
-
-
-
@@ -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_write_input.proto"; message WorkingDayWriteInput { // 労働者が出勤したかどうか。 bool has_worker_worked = 1; // 利用した1日未満の休暇。 repeated TimeOffWriteInput time_offs = 2; }
-
-
-
@@ -5,6 +5,7 @@ edition = "2023";package yamori.worker.v1; import "yamori/capability/v1/capability_key.proto"; import "yamori/work_record/v1/work_record.proto"; import "yamori/worker/v1/worker_id.proto";
-
@@ -17,4 +18,7 @@ string display_name = 2;// 勤怠記録。 repeated yamori.work_record.v1.WorkRecord work_records = 3; // 勤怠記録を更新するためのキー。 yamori.capability.v1.CapabilityKey write_work_record_key = 4; }
-
-
-
@@ -11,6 +11,8 @@ import "yamori/worker/v1/get_request.proto";import "yamori/worker/v1/get_response.proto"; import "yamori/worker/v1/list_request.proto"; import "yamori/worker/v1/list_response.proto"; import "yamori/worker/v1/write_work_record_request.proto"; import "yamori/worker/v1/write_work_record_response.proto"; service WorkerService { // ID を指定して労働者を取得する。
-
@@ -21,4 +23,7 @@ rpc List(ListRequest) returns (ListResponse);// ワークスペース内に労働者を新規登録する。 rpc Create(CreateRequest) returns (CreateResponse); // 労働者の勤怠記録を更新する。 rpc WriteWorkRecord(WriteWorkRecordRequest) returns (WriteWorkRecordResponse); }
-
-
-
@@ -0,0 +1,33 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.worker.v1; import "yamori/capability/v1/capability_key.proto"; import "yamori/work_record/v1/work_record_batch_write_input.proto"; import "yamori/work_record/v1/work_record_batch_write_mask.proto"; import "yamori/work_record/v1/work_record_read_mask.proto"; import "yamori/worker/v1/worker_id.proto"; import "yamori/workspace/v1/workspace_id.proto"; message WriteWorkRecordRequest { // [必須] 対象労働者が所属するワークスペースの ID 。 yamori.workspace.v1.WorkspaceID workspace_id = 1; // [必須] 対象労働者の ID 。 WorkerID worker_id = 2; // [必須] 対象労働者の勤怠記録を更新するためのキー。 yamori.capability.v1.CapabilityKey write_work_record_key = 3; // [必須] 書き込む勤怠記録。 yamori.work_record.v1.WorkRecordBatchWriteInput work_record = 4; // 更新するフィールドマスク。未指定の場合は全てのフィールドを上書き更新する。 yamori.work_record.v1.WorkRecordBatchWriteMask write_mask = 5; // WriteWorkRecordResponse.ok.work_records の各要素にかけるマスク。 yamori.work_record.v1.WorkRecordReadMask read_mask = 6; }
-
-
-
@@ -0,0 +1,35 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only edition = "2023"; package yamori.worker.v1; import "yamori/error/v1/capability_error.proto"; import "yamori/error/v1/missing_field_error.proto"; import "yamori/error/v1/not_found.proto"; import "yamori/error/v1/system_error.proto"; import "yamori/work_record/v1/work_record.proto"; message WriteWorkRecordResponse { message OK { // 更新後の勤怠記録。 repeated yamori.work_record.v1.WorkRecord work_records = 1; } oneof result { OK ok = 1; // システムエラーが発生した。 yamori.error.v1.SystemError system_error = 2; // 必須フィールドに値が入っていないため作成されなかった。 yamori.error.v1.MissingFieldError missing_field = 3; // 権限がない、もしくはキーが不正。 yamori.error.v1.CapabilityError capability_error = 4; // 指定されたワークスペースもしくは労働者が存在しない、アクセスできない。 yamori.error.v1.NotFound not_found = 5; } }
-