# Code generated by lark_sdk_gen. DO NOT EDIT.

from pylark.lark_request import RawRequestReq, _new_method_option
import attr
import typing
import io


@attr.s
class CreateUpdateAttendanceUserDailyShiftReqUserDailyShift(object):
    group_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 考勤组 ID
    shift_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 班次 ID，休息为 0
    month: int = attr.ib(default=0, metadata={"req_type": "json"})  # 月份
    user_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 用户
    day_no: int = attr.ib(default=0, metadata={"req_type": "json"})  # 日期


@attr.s
class CreateUpdateAttendanceUserDailyShiftReqEmployeeType(object):
    pass


@attr.s
class CreateUpdateAttendanceUserDailyShiftReq(object):
    employee_type: CreateUpdateAttendanceUserDailyShiftReqEmployeeType = attr.ib(
        factory=lambda: CreateUpdateAttendanceUserDailyShiftReqEmployeeType(),
        metadata={"req_type": "query"},
    )  # 请求体中的 user_id 的员工工号类型可用值：【employee_id（员工的 employeeId），employee_no（员工工号）】，示例值："employee_id"
    user_daily_shifts: typing.List[
        CreateUpdateAttendanceUserDailyShiftReqUserDailyShift
    ] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # 班表信息列表


@attr.s
class CreateUpdateAttendanceUserDailyShiftRespUserDailyShift(object):
    group_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 考勤组 ID
    shift_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 班次 ID
    month: int = attr.ib(default=0, metadata={"req_type": "json"})  # 月份
    user_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 用户
    day_no: int = attr.ib(default=0, metadata={"req_type": "json"})  # 日期


@attr.s
class CreateUpdateAttendanceUserDailyShiftResp(object):
    user_daily_shifts: typing.List[
        CreateUpdateAttendanceUserDailyShiftRespUserDailyShift
    ] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # 班表信息列表


def _gen_create_update_attendance_user_daily_shift_req(
    request, options
) -> RawRequestReq:
    return RawRequestReq(
        dataclass=CreateUpdateAttendanceUserDailyShiftResp,
        scope="Attendance",
        api="CreateUpdateAttendanceUserDailyShift",
        method="POST",
        url="https://open.feishu.cn/open-apis/attendance/v1/user_daily_shifts/batch_create",
        body=request,
        method_option=_new_method_option(options),
        need_tenant_access_token=True,
    )
