# 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 GetAttendanceUserDailyShiftReqEmployeeType(object):
    pass


@attr.s
class GetAttendanceUserDailyShiftReq(object):
    employee_type: GetAttendanceUserDailyShiftReqEmployeeType = attr.ib(
        factory=lambda: GetAttendanceUserDailyShiftReqEmployeeType(),
        metadata={"req_type": "query"},
    )  # 请求体中的 user_ids 的员工工号类型，可用值：【employee_id（员工的 employeeId），employee_no（员工工号）】，示例值：“employee_id”
    user_ids: typing.List[str] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # employee_no 或 employee_id 列表
    check_date_from: int = attr.ib(default=0, metadata={"req_type": "json"})  # 查询的起始工作日
    check_date_to: int = attr.ib(default=0, metadata={"req_type": "json"})  # 查询的结束工作日


@attr.s
class GetAttendanceUserDailyShiftRespUserDailyShift(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"})  # 月份
    employee_no: str = attr.ib(default="", metadata={"req_type": "json"})  # 用户
    day_no: int = attr.ib(default=0, metadata={"req_type": "json"})  # 日期


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


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