// Package sysin
// @Link  https://github.com/bufanyun/hotgo
// @Copyright  Copyright (c) 2025 HotGo CLI
// @Author  Ms <133814250@qq.com>
// @License  https://github.com/bufanyun/hotgo/blob/master/LICENSE
// @AutoGenerate Version 2.17.8
package sysin

import (
	"context"
	"hotgo/internal/library/hgorm/hook"
	"hotgo/internal/model/entity"
	"hotgo/internal/model/input/form"
)

// LessonSectionUpdateFields 修改课程章节字段过滤
type LessonSectionUpdateFields struct {
	LessonId  int64  `json:"lessonId"  dc:"课程id"`
	VideoUrl  string `json:"videoUrl"  dc:"视频url"`
	Name      string `json:"name"      dc:"章节名"`
	SortOrder int    `json:"sortOrder" dc:"排序号"`
	ParentId  int    `json:"parentId"  dc:"父章节id"`
	Level     int    `json:"level"     dc:"章节层级"`
	UpdatedBy int64  `json:"updatedBy" dc:"更新人"`
}

// LessonSectionInsertFields 新增课程章节字段过滤
type LessonSectionInsertFields struct {
	LessonId  int64  `json:"lessonId"  dc:"课程id"`
	VideoUrl  string `json:"videoUrl"  dc:"视频url"`
	Name      string `json:"name"      dc:"章节名"`
	SortOrder int    `json:"sortOrder" dc:"排序号"`
	ParentId  int    `json:"parentId"  dc:"父章节id"`
	Level     int    `json:"level"     dc:"章节层级"`
	CreatedBy int64  `json:"createdBy" dc:"创建人"`
}

// LessonSectionEditInp 修改/新增课程章节
type LessonSectionEditInp struct {
	entity.LessonSection
}

func (in *LessonSectionEditInp) Filter(ctx context.Context) (err error) {

	return
}

type LessonSectionEditModel struct{}

// LessonSectionDeleteInp 删除课程章节
type LessonSectionDeleteInp struct {
	Id interface{} `json:"id" v:"required#id不能为空" dc:"id"`
}

func (in *LessonSectionDeleteInp) Filter(ctx context.Context) (err error) {
	return
}

type LessonSectionDeleteModel struct{}

// LessonSectionViewInp 获取指定课程章节信息
type LessonSectionViewInp struct {
	Id int64 `json:"id" v:"required#id不能为空" dc:"id"`
}

func (in *LessonSectionViewInp) Filter(ctx context.Context) (err error) {
	return
}

type LessonSectionViewModel struct {
	entity.LessonSection
	CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建人摘要信息"`
	UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新人摘要信息"`
}

// LessonSectionListInp 获取课程章节列表
type LessonSectionListInp struct {
	form.PageReq
	Id int64 `json:"id" dc:"id"`
}

func (in *LessonSectionListInp) Filter(ctx context.Context) (err error) {
	return
}

type LessonSectionListModel struct {
	Id             int64             `json:"id"             dc:"id"`
	LessonId       int64             `json:"lessonId"       dc:"课程id"`
	VideoUrl       string            `json:"videoUrl"       dc:"视频url"`
	Name           string            `json:"name"           dc:"章节名"`
	SortOrder      int               `json:"sortOrder"      dc:"排序号"`
	ParentId       int               `json:"parentId"       dc:"父章节id"`
	Level          int               `json:"level"          dc:"章节层级"`
	CreatedBy      int64             `json:"createdBy"      dc:"创建人"`
	CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建人摘要信息"`
	UpdatedBy      int64             `json:"updatedBy"      dc:"更新人"`
	UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新人摘要信息"`
}

// LessonSectionExportModel 导出课程章节
type LessonSectionExportModel struct {
	Id        int64  `json:"id"        dc:"id"`
	LessonId  int64  `json:"lessonId"  dc:"课程id"`
	VideoUrl  string `json:"videoUrl"  dc:"视频url"`
	Name      string `json:"name"      dc:"章节名"`
	SortOrder int    `json:"sortOrder" dc:"排序号"`
	ParentId  int    `json:"parentId"  dc:"父章节id"`
	Level     int    `json:"level"     dc:"章节层级"`
	CreatedBy int64  `json:"createdBy" dc:"创建人"`
	UpdatedBy int64  `json:"updatedBy" dc:"更新人"`
}