syntax = "v1"

type (
	// 创建通知请求
	AdminCreateNotificationReq {
		Title            string `json:"title"`             // 通知标题
		NotificationPage string `json:"notification_page"` // 通知页面
		Content          string `json:"content"`           // 通知内容
		StartDate        string `json:"start_date"`        // 生效开始日期（yyyy-MM-dd）
		StartTime        string `json:"start_time"`        // 生效开始时间（HH:mm:ss）
		EndDate          string `json:"end_date"`          // 生效结束日期（yyyy-MM-dd）
		EndTime          string `json:"end_time"`          // 生效结束时间（HH:mm:ss）
		Status           int64  `json:"status"`            // 状态：1-启用，0-禁用
	}

	// 创建通知响应
    AdminCreateNotificationResp {
        Id string `json:"id"` // 通知ID
    }

	// 更新通知请求
    AdminUpdateNotificationReq {
        Id               string  `path:"id"`                         // 通知ID
        Title            *string `json:"title,optional"`             // 通知标题
		Content          *string `json:"content,optional"`           // 通知内容
		NotificationPage *string `json:"notification_page,optional"` // 通知页面
		StartDate        *string `json:"start_date,optional"`        // 生效开始日期
		StartTime        *string `json:"start_time,optional"`        // 生效开始时间
		EndDate          *string `json:"end_date,optional"`          // 生效结束日期
		EndTime          *string `json:"end_time,optional"`          // 生效结束时间
		Status           *int64  `json:"status,optional"`            // 状态
	}

	// 更新通知响应
	AdminUpdateNotificationResp {
		Success bool `json:"success"` // 是否成功
	}

	// 删除通知请求
    AdminDeleteNotificationReq {
        Id string `path:"id"` // 通知ID
    }

	// 删除通知响应
	AdminDeleteNotificationResp {
		Success bool `json:"success"` // 是否成功
	}

	// 获取通知详情请求
    AdminGetNotificationDetailReq {
        Id string `path:"id"` // 通知ID
    }

	// 获取通知详情响应
    AdminGetNotificationDetailResp {
        Id               string `json:"id"`                // 通知ID
        Title            string `json:"title"`             // 通知标题
		Content          string `json:"content"`           // 通知内容
		NotificationPage string `json:"notification_page"` // 通知页面
		StartDate        string `json:"start_date"`        // 生效开始日期
		StartTime        string `json:"start_time"`        // 生效开始时间
		EndDate          string `json:"end_date"`          // 生效结束日期
		EndTime          string `json:"end_time"`          // 生效结束时间
		Status           int64  `json:"status"`            // 状态
		CreateTime       string `json:"create_time"`       // 创建时间
		UpdateTime       string `json:"update_time"`       // 更新时间
	}

	// 获取通知列表请求
	AdminGetNotificationListReq {
		Page             int64   `form:"page"`                       // 页码
		PageSize         int64   `form:"pageSize"`                   // 每页数量
		Title            *string `form:"title,optional"`             // 通知标题（可选）
		NotificationPage *string `form:"notification_page,optional"` // 通知页面（可选）
		Status           *int64  `form:"status,optional"`            // 状态（可选）
		StartDate        *string `form:"start_date,optional"`        // 开始日期范围（可选）
		EndDate          *string `form:"end_date,optional"`          // 结束日期范围（可选）
	}

	// 通知列表项
    NotificationListItem {
        Id               string `json:"id"`                // 通知ID
        Title            string `json:"title"`             // 通知标题
		NotificationPage string `json:"notification_page"` // 通知页面
		Content          string `json:"content"`           // 通知内容
		StartDate        string `json:"start_date"`        // 生效开始日期
		StartTime        string `json:"start_time"`        // 生效开始时间
		EndDate          string `json:"end_date"`          // 生效结束日期
		EndTime          string `json:"end_time"`          // 生效结束时间
		Status           int64  `json:"status"`            // 状态
		CreateTime       string `json:"create_time"`       // 创建时间
		UpdateTime       string `json:"update_time"`       // 更新时间
	}

	// 获取通知列表响应
	AdminGetNotificationListResp {
		Total int64                  `json:"total"` // 总数
		Items []NotificationListItem `json:"items"` // 列表数据
	}
)

// 通知管理接口
@server(
	prefix: /api/v1/admin/notification
	group: admin_notification
	middleware: AdminAuthInterceptor
)
service main {
	// 创建通知
	@handler AdminCreateNotification
	post /create (AdminCreateNotificationReq) returns (AdminCreateNotificationResp)

	// 更新通知
	@handler AdminUpdateNotification
	put /update/:id (AdminUpdateNotificationReq) returns (AdminUpdateNotificationResp)

	// 删除通知
	@handler AdminDeleteNotification
	delete /delete/:id (AdminDeleteNotificationReq) returns (AdminDeleteNotificationResp)

	// 获取通知详情
	@handler AdminGetNotificationDetail
	get /detail/:id (AdminGetNotificationDetailReq) returns (AdminGetNotificationDetailResp)

	// 获取通知列表
	@handler AdminGetNotificationList
	get /list (AdminGetNotificationListReq) returns (AdminGetNotificationListResp)
}
